JAVA

ofir3011

New member
JAVA ../images/Emo188.gif

אהלן. יש לי הסמסטר קורס JAVA מייגע עם מרצה גרוע. הוא לא עובר על כל החומר ואחנו חייבם לעבור על כל השקפים ולקרוא את הספר. לא הספקתי לעבור על הכל אבל יש שאלה שאני לא כך כך יודע איך לפתור. מבחינה רעיונית זה לא קשה. אני אשמח אם מישהו יסביר לי איך אני יכול לעשות אינידקציה של מסםר ראשוני בג'אווה. התרגיל מצורף כקובץ (התרגיל הראשון) תודה, אופיר.
 

ofir3011

New member
אין קול ואין עונה ../images/Emo63.gif

אולי בכל זאת מישהו יוכל לעזור ? ..
 

VoodooKid

New member
בדיקה אם מספר ראשוני

בדיקה אם מספר ראשוני או לא ולא משנה באיזה שפה הולך ככה. יש 3 שיטות אני יתחיל מהכי פחות יעלה להכי יעילה: 1) לבדוק את כל המספרים מ 2 עד המספר המספר פחות אחד אם שום מספר לא משאיר שארית של 0 אז המספר ראשוני. השארת שארית של 0 יכולה להיבדק ע"י השוואת המספר עם עצמו כאשר הוא מומר לINT. אני יתן דוג' ה N שלי הוא 7 נניח:
bool isPrime = true; for (int i = 2; i < n-1 ; i++) { if (i != ( int )i) { // לא ראשוני is Prime = false; } } if (isPrime) { //בלה בלה בלה }​
2) בדיקת המספר רק עד n/2 הרבה יותר יעילה, אני נותן לך להבין למה. 3) הבדיקה הכי קצרה היא עד השורש של N מעוגל כלפי מעלה, את ההסבר ללמה זה עובד אני לא יודע אבל זה תמיד נכון. (אולי אנשים אחרים ישפכו אור) זה בעיקרון מה שאתה צריך לעשות
 

DNile

New member
זה די פשוט למען האמת.

נניח כי המספר A הוא מספר פריק. A חייב להתחלק לפחות ב2 מספרים ראשוניים: p1, p2. אם בדקנו את כל המספרים מ2 עד שורש A, וגילינו כי p1 גדול משורש A, בהכרח מתקיים p2 קטן משורש A, שכן:
b = sqrt(A) p1 > b p2 > b ==> p1 * p2 > b*b ==> p1 * p2 > A​
אבל כבר בדקנו את כל הראשוניים הקטנים משורש A - וp2 לא מחלק את A - סתירה! מכאן שאם לא מצאת גורם ראשוני הקטן משורש A, אין מצב שתמצא אחד שהוא גדול משורש A.
 
למעלה