הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   c++ מציאת מספריים ראשונים (https://hosts.co.il/forums/showthread.php?t=60962)

Derey22 15-03-08 13:05

c++ מציאת מספריים ראשונים
 
קוד:

#include <iostream>
using namespace std;

 int main()
 {
        int a,b;
        while(true){
        cin >> a;
                for (b=2;b<a;b++)
                {
                        if (a%b == 0){
                        cout << "no\n";
                        a=0;
                        }else{
                        cout << "yes\n";
                        a=0;
                        }
                }
        }
 }

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

תודה

-roee- 15-03-08 13:38

אני אתן לך את האלגוריתם ואתה תמיר אותו ל-c:

אתה צריך לקלוט מספר למשתנה num
מגדיר את counter כאפס
כל עוד ש-counter קטן מnum וגם found הוא false בצע:
אם num &#37; counter שווה לאפס, שנה את found ל true
הגדל את counter ב-1

מחוץ ללולאה:
אם found הוא true המספר אינו ראשוני ולכן כאשר found הוא false המספר הוא ראשוני :)

הציעו עוד דרכי פתרון יחודייות ונראה של מי הכי מקורית..

Derey22 15-03-08 13:50

>ודה אבל כבר הסתדרתי הבנתי תבעיה.


כל הזמנים הם GMT +2. הזמן כעת הוא 19:59.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ