Mobiwan 22.03.2313:11

ב-C, כתוב תוכנית למציאת מספרים ראשוניים מקבוצה של מספרי סדרת פיבונאצ'י.

לאחר הדפסת סדרת פיבונאצ'י, אני רוצה לזהות את המספרים הראשוניים. התחלתי ביישום אלגוריתם פיבונאצ'י, ואז הוספתי כל חלק למערך. המערך סופק לאחר מכן לפונקציה שבדקה ראשוניים. רציתי לנסות את זה באמצעות מערך. הקוד הבא מציג את הרצף אך לא את המספרים הראשוניים.
ראיתי מאמר(https://www.scaler.com/topics/fibon?... שדרש להשתמש בשיטות איטרטיביות ולא רקורסיביות. האם זה יצליח? תוכל בבקשה לעזור לי?
[code]
#include
int fib()
{
int a=0,b=1, arr[20];
arr[0] = a;
arr[1] = b;
printf("%d, %d,",a, b );
int c=0;
for(int i=2; i<=20; i++)
{
c=a+b;
arr[i] = c;
printf("%d,",c);
a=b;
b=c;
}
checkPrime(arr);
}
void checkPrime(int a[])
{
int i, count;
for(i=0; i {
count=0;
for(int j=2; j<=a[i]/2 ; j++)
{
if(a[i]%2==0)
count++;
}
if(count>1)
printf("%d is a Prime", a[i]);
}

}
int main()
{
fib();
}
[/code]
תוצאה של הקוד
0 הוא מספר ראשוני, וכך גם 1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765 ו-8.

moshebou 22.03.2317:45
1. arr בדרך כלל מייצג מערך לא אינטגר בתגובה להודעה מספר 0
ואיפה בקוד אתה מעדכן את a?
העבר לפורום אחר
העבר לפורום:
סיבה:
תגובה חדשה
כותרת:
תוכן:
סמיילים:
הצג
עריכת אשכול
כותרת:
תוכן:
סמיילים:
הצג