ABA


"צריך עזרה בC++, לגבי מספרים ראשוניים"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #15602 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 15602
kutumaster 
חבר מתאריך 19.9.06
19325 הודעות, דרג אמינות חבר זה
   20:54   07.12.09   
אל הפורום  
  צריך עזרה בC++, לגבי מספרים ראשוניים  
 
   משום מה אני יושב כבר כמה ימים ולא מצליח לפתור את חלק 3
מישהו יכול לעזור לי?

1. הגדירו משתנה קבוע (CONST) מסוג int בשם size. זהו גודל המערך שנעבוד עליו.
2. ממשו פונקציה שתקבל את המערך ותמלא אותו בסדרת פיבונצ'י כפי שלמדנו בשיעורים (האיבר הראשון הוא 0 והשני הוא 1). הפונקציה גם תדפיס את האיברים הללו
3. ממשו פונקציה הבודקת מי מאיברי המערך הינם מספרים ראשוניים ומדפיסה אותם (החל מהאיבר הרביעי של הסדרה)

את 1 ו2 עשיתי, אבל את 3 אני פשוט לא מצליח
יש למישהו כיוון?

בברכה,


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  הנה בבקשה עזרה לפתרון לתרגיל 3 men123 07.12.09 22:28 1
  אם אין דרישה לסיבוכיות, ואתה רוצה כמה שיותר קריא, ldan192  08.12.09 15:01 2
  תודה רבה לכם, עזרתם לי מאוד kutumaster  08.12.09 19:11 3

       
men123
חבר מתאריך 3.10.05
6269 הודעות, דרג אמינות חבר זה
   22:28   07.12.09   
אל הפורום  
  1. הנה בבקשה עזרה לפתרון לתרגיל 3  
בתגובה להודעה מספר 0
 
   ערכתי לאחרונה בתאריך 07.12.09 בשעה 22:39 בברכה, men123
 

הפתרון ע"פ הנפה של ארטוסתנס
אני יודע שזה לא פתרון מושלם לשאלה שלך, אבל תוכל לראות מזה כיצד מוצאים מספרים ראשוניים.



#include<iostream>
using namespace std;
void main()
{
const int size=100;
bool array;
int i,j;

for(i=0;i<size;i++)
array=true;
cout<<"The prime numbres betwwen 1 and "<<size<<" are:"<<endl;
for(i=2;i<size;i++)
if(array)
{
cout<<i<<" ";
for(j=2*i;j<size;j+=i)
array=false;
}
cout<<endl;
}


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ldan192 
חבר מתאריך 14.9.08
95119 הודעות
   15:01   08.12.09   
אל הפורום  
  2. אם אין דרישה לסיבוכיות, ואתה רוצה כמה שיותר קריא,  
בתגובה להודעה מספר 0
 
אז זה משהו כזה:



#include <math.h>

void fun(int* a, int n) {
int i = 0, j, bl=0, c=0;
while (i++<n) {
bl=0;
for(j=2; j<sqrt(a); j++) {
if (a % j == 0) {
bl = 1;
break;
}
}
if (bl != 1) {
if (c >= 4) printf("This one: %d\n", a);
else c++;
}
}
}

כמובן יש קודים יותר מתוחכמים, שמשתמשים בידע מדעי יותר נרחב ואף מסתמכים על שדות מסויימים, זה אחלה פתרון למתחילים.


בברכה,
עידן


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
kutumaster 
חבר מתאריך 19.9.06
19325 הודעות, דרג אמינות חבר זה
   19:11   08.12.09   
אל הפורום  
  3. תודה רבה לכם, עזרתם לי מאוד  
בתגובה להודעה מספר 0
 
  

בברכה,


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net