תרגיל – תוכנית למציאת מספרים ראשוניים בין 0 ל- 100
מספר ראשוני הוא מספר המתחלק רק בעצמו וב- 1 ונותן תוצאה שלימה ולא בשום מספר אחר.
for num in range (101):
if num > 1:
for i in range(2,num):
if (num % i) == 0:
break
else:
print(num)
>>>
2
3
5
7
11
13
17
19
23
29
…
*למען הקיצור כתבנו רק את עשרת המספרים הראשוניים שמצאנו באמצעות התוכנית.
הלולאה הראשונה רצה על המספרים מ – 0 עד 101 (לא כולל 101 אבל כן כולל את 100). היא מתחילה להדפיס החל מהמספר 2 באמצעות מסננת של פקודת if num>1, ולגבי מספרים הגדולים מ-1 יצרנו לולאה פנימית נוספת, שרצה על המספרים מ- 2 ועד למספר שנמצא בתור בלולאה הראשונה (בתוך המשתנה num) ומחלקת אותו בכל אחד מהמספרים הקטנים ממנו באמצעות הלולאה הפנימית (שם כל מספר הקטן מהמספר אותו אנו בודקים מסומנן ב – i) – כך למשל אם הגענו למספר 5, הלולאה הפנימית מחלקת אותו במספרים 2,3 ו- 4 זאת משום ש- (range(2,5 לא כולל את המספר 5, ובודקת האם התוצאה של חלוקת המספר 5 בכל אחד מהמספרים שלפניו (2,3,4) היא בעלת שארית 0 – כאשר שארית 0 אומרת לנו שהמספר מתחלק באופן שלם במספר אחר שהוא לא עצמו או 1 ולכן אינו ראשוני – במקרה כזה ההוראה היא break והלולאה הפנימית נשברת ולא ממשיכה לרוץ ולא מגיעה לפקודה. (print(num אם המספר הוא ראשוני, הוא צולח את חלוקת המספרים הקטנים ממנו (חוץ מ- 1) כאשר תמיד נותרת שארית הגדולה מ- 0, ולכן פקודת break לא יוצאת לפועל, והוא מודפס בשלום.