Logo

רד-בורד: ארכיון

ראשי > תיכנות > עזרה בתריל java

23/01/2007 17:10:33 Par4n0iA
אני אמור לרשום תוכנית שאומרת לי אם המספר הקלטתי או ראשוני או לא ראשוני ..

אין לי אפילו רעיון מה לעשות מישהו יכו לעזור לי בבקשה??

איך אני אמור לבדוק אם המספר הוא ראשוני או לא??
תודה רבה לעוזרים..
23/01/2007 17:16:12 onion
:||||||||||
תעבור עם לולאה על כל המחלקים שלו.
אם יש לו מחלקים חוץ מ-1 ועצמו, אזי הוא פריק
אחרת, ראשוני
23/01/2007 17:46:41 devil kide
מספיק שתעבור עד חצי של המספר.
למשל אם המספר הוא 10 אז תעשה לולאה עד 5, אם המספר 11 תעשה לולאה עד 6 (כי בלתי אפשרי לעשות 5.5).
23/01/2007 18:24:44 HLL
דביל קיד צודק
אבל זה לא בידיוק הסיבה "כי בלתי אפשרי"
ברגע שאתה עובר את מחצית המספר
אף חלוקה לא תתן לך מספר שלם
היא תניב את טווח הערכים
1-1.99999999
כאשר את הערך 1 יניב חלוקה של x ב x... - מה שלא אומר שום דבר אם הוא ראשוני או לא.
23/01/2007 19:55:39 onion
אפשר גם עד השורש
23/01/2007 20:41:15 Par4n0iA

תעבור עם לולאה על כל המחלקים שלו.
אם יש לו מחלקים חוץ מ-1 ועצמו, אזי הוא פריק
אחרת, ראשוני

איך עושים את זה?
אתה יכו ללרשום לי בjava?
23/01/2007 20:44:16 Eran
אפשר להוסיף if אם זה מתחלק בשתיים - ואז הוא לא ראשוני, אחרת הלולאה תרוץ עד השורש עם דילוג על מספרים זוגיים.
23/01/2007 20:48:01 Eran
לא התעסקתי הרבה זמן עם ג’אווה אבל:

קוד:
public class primeNumber{
public boolean isPrime(int n){
if(n==2) return true; //2 ראשוני
if(n%2==0) return false; //במקרה של מספר זוגי אחר - לא ראשוני
for (int i=3;i<math.sqrt(n); i=i+2){
if(n%i==0) return false;
}
return true;
}
}


פשוט למדי :)
[ההודעה נערכה על-ידי Eran ב-26/01/2007 00:19:36]
23/01/2007 22:52:44 Hypathia
ברור שהדרך הכי קלה היא להגדיל מספרים אי-זוגיים ב2 כל פעם ולבדוק האם המכפלה שלהם שווה או גדולה למספר הנתון, תנאי יציאה אחר בכל מצב.

אבל נראה שעבור התוכנית הרבה יותר יעיל שבריצה הראשונה יווצר מערך מספרים ראשוניים אשר תכלית מכפלתם להשתוות או להיות גדולים מהמספר שהוזן. בחישובים נוספים התוכנית כבר תשתמש במערך הקיים בתוכה. כשמדובר במספרים גדולים האלגוריטם הזה חוסך עבודה.
בתור התחלה אתה יכול להציב במערך 2, 3. כאשר 2 הוא בהגדרתו ראשוני, אך לא יועיל לנו בחישוב שהרי שנשמיט מייד מספרים זוגיים. 3 יוליד מתוכו את שאר הראשוניים.[ההודעה נערכה על-ידי Hypathia ב-23/01/2007 22:55:34]
עמודים: 1