9 תשובות
יש לזה פונקציות ואלגוריתמים, אבל הם מאבדים יעילות ככל שהמספר גבוה יותר.
אם הייתה דרך לבדוק באופן יעיל אם מספר הוא ראשוני או לא, כל עולם ההצפנה המודרני לא היה קיים.
פשוט לעשות לולאה שבודקת אם כל המספרים עד המספר ההוא מתחלקים במספר וכאשר מחלקים והשארית היא 0 זה אומר שהמספר ראשוני יש בהרבה מקומות דוגמא לקוד (פשוט לכתוב בגוגל וזה כבר מראה תשובה ;)
שואל השאלה:
אני צריכה בשביל שיעורים..
אנונימית
שואל השאלה:
זה אומר שהמספר זוגי אבל לא בהכרח ראשוני
אנונימית
אז כמו שאמרו מעליי, רק שאני אציע ייעול קל.
לכפול את המספר בחצי ולבדוק את כל המספרים משם אם הוא זוגי, או לכפול בחצי ולחסר חצי ואז לבדוק.
למה? כי המחלק הכי גדול של מספר יכול להיות מקסימום חצי ממנו.
דוגמא - כדי לבדוק אם שמונה ראשוני נכפול אותו בחצי שזה שווה ארבע ונתחיל לחלק ב4, 3, 2, 1.
אם רוצים לייעל עוד יותר - אפשר לבדוק רק אם המספר מתחלק בגורמים ראשונים הקטנים ממנו ולא בכל המספרים. אבל זה דורש יצירה של רשימה עם גורמים ראשוניים ידועים.
ב#c אז את יכולה לעשות לולאת for ולעבור על כל המספרים מ2 (כי ברור שהוא מתחלק ב1) עד המספר עצמו (זה שאת רוצה לבדוק) ובתוך הלולאת for לעשות לולאת if ולראות אם הוא מתחלק בi (המספר שאת בודקת בלולאת for כל פעם) :
int num;
for (int i=2;i<num;i++)
{
if (num%i==0&&num!=i)
{
לא ראשוני
}
else
{
כן ראשוני
}
שואל השאלה:
היי כבר הצלחתי את זה אבל תוכלי לעזור לי במשהו אחר?
אנונימית
בטח שלחי לי בפרטי
שואל השאלה:
לא חשוב כבר הצלחתי אבל תודה רבה בכל מקרה(:(:
אנונימית