1.

Jos711

New member
אני עדיין מנסה להבין מה זה מספרים

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

הם מספרים שמתחלקים רק בעצמם ובאחד. (לדוגמה - שתיים, שלוש, חמש, שבע) לעומתם יש את המספריים הלא ראשוניים שאני לא באמת זוכרת איך קוראים להם. (ארבע, שש, עשר ולמעשה, רוב המספרים.)
 

Jos711

New member
ואת אומרת את זה למישהי שעדיין מנסה

להבין מה זה חילוק ארוך. טווווווווווווווווווווווווווווווווב
 

Agent Frog

New member
אפשר לפשט את העניין

var num,x:int; flag:boolean; begin writeln("The following are RISHONIIM:"); num:=2; writeln("1"); while true begin flag=true; x:=1; while (flag AND x<num) begin if not x=1 then if num div x<>0 then flag:=false else x:=x+1; end; if flag then writeln(num); end; end;​
אם טעיתי, ובמקום DIV צריך להיות MOD, אז צריך להתחשב בעובדה שהבגרות היתה לפני שנה ושכחתי את הפקודות והסינטקס
 

Agent Frog

New member
בהחלט לפשט יקירתי!

אם מריצים את זה, זה ממלא את המסך במספרים ראשוניים. זה גם אף פעם לא מפסיק לחפש אותם עד אינסוף. לא פשוט יותר מלבדוק ידנית?
 

ailag

New member
../images/Emo31.gif

תרוץ רק עד השורש של המספר. וגם ככה זה לא הכי יעיל שיכול להיות.
 

ailag

New member
לא, למה?

קח למשל את 289. השורש השלישי שלו הוא 6.6 , נעגל ל 7. מתחלק ב 2? לא. 3? לא. 5? לא. 7? לא. ראשוני? 17*17=289 , לא ראשוני, על אף שלא מצאנו לו אף מחלק בין 2 לבין השורש השלישי שלו (בעיגול כלפי מעלה) (אם כי לדעתי בשורש רגיל אפשר לעגל כלפי מטה) עוד דרך ייעול, אגב, היא זו שהשתמשתי בה פה: במקום לבדוק את כל המחלקים, לבדוק רק מחלקים ראשוניים - את אלו יש לנו מהשלבים הקודמים. ונא לא לקחת את ה
ההוא ברצינות :)
 

Agent Frog

New member
לגבי יעילות -

אבל אם נזכור את כל הראשוניים הקודמים שמצאנו - זה לא יהיה יותר כבד מבחינת העובדה שמעמיסים על הזיכרון יותר ויותר מידע, עד למעשה אינסוף? (אם מה שאמרתי עכשיו זה שטות מוחלטת - זה בגלל שההשכלה שלי מסתכמת ב 5 יח"ל מחשבים... עוד שנה אתחיל ללמוד לתואר ראשון כנראה
)
 
למעלה