целочисленная матрица
Добавлено: 10 дек 2013, 01:40
Дана целочисленная матрица A(M,N). Элемент A(i, j) назовем “особым”, если он делится хотя бы на одно число Фибоначчи, большее некоторого заданного значения Р. Заменить каждый особый элемент на ближайшее большее простое число.
Чи́сла Фибона́ччи — элементы числовой последовательности в которой каждое последующее число равно сумме двух предыдущих чисел. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946
Вот мой код который у меня не получается отладить
Чи́сла Фибона́ччи — элементы числовой последовательности в которой каждое последующее число равно сумме двух предыдущих чисел. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946
Вот мой код который у меня не получается отладить
Код: Выделить всё
#include <stdio.h>
#include "stdafx.h"
#include <conio.h>
int main()
{
int a [10][10],i,j,m,n,p;
int f,d,f0,f1,f2,z;
printf("vvedite m n");
scanf("%d%d",&m,&n);
printf("\n vvedite elementy\n");
for (i=0;i<m;i++)
for (j=0;j<n;j++)
scanf("%d",&a[i][j]);
printf("vvod zakonchen");
printf("\n vvedite p \n");
scanf("%d",&p);
for (i=0;i<m;i++)
for (j=0;j<n;j++)
for (d=p+1;d<=a[i][j];d++)
if(a[i][j]%d==0)
{f0=1;f1=1;
while (f1<d)
{f2=f0+f1;
f0=f1;f1=f2;}
if (f1==d)
{f=1;z=a[i][j]+1;
while (f)
{q=1;
for (d=2;d<=z/2;d++)
if (z%d==0)
q=0;
if(q) {a[i][j]=z;f=0;}
}
}
if(f==0) break;
}
printf ("matrica");
for (i=0;i<m;i++){
for (j=0;j<n;j++)
printf("%6d",a[i][j]);
printf("\n");}
return 0;
}