30
מבוא לתכנות מדעי הרצאה4 חלק3 מספרים ראשונים2016 Igor Kleiner

מבוא לתכנות מדעי פייתון הרצאה 4 חלק 3 Python

Embed Size (px)

Citation preview

Page 1: מבוא לתכנות מדעי פייתון הרצאה 4 חלק 3 Python

מבוא לתכנות מדעי

3חלק 4הרצאה

מספרים ראשונים

2016Igor Kleiner

Page 2: מבוא לתכנות מדעי פייתון הרצאה 4 חלק 3 Python

מטרה

לכתוב תוכנה שבודקת האם מספר הוא ראשוני

לפתח אלגוריתם שבודק האם מספר הוא ראשוני או לא

Page 3: מבוא לתכנות מדעי פייתון הרצאה 4 חלק 3 Python

מספר ראשוני

ומתחלק ללא 1-הוא מספר שלם חיובי שגדול מ(prime number)מספר ראשוני •ובעצמו1-שארית רק ב

Page 4: מבוא לתכנות מדעי פייתון הרצאה 4 חלק 3 Python

מספר ראשוני

ומתחלק ללא 1-הוא מספר שלם חיובי הגדול מ(prime number)מספר ראשוני •:ובעצמו1-שארית רק ב

:למשל•

הם מספרים ראשונים2,3,5,7,11,13,17,19,23,29•

הם מספרים לא ראשוניים4,6,9,82,100,121:ומספרים•

Page 5: מבוא לתכנות מדעי פייתון הרצאה 4 חלק 3 Python

מספר ראשוני

ומתחלק ללא 1-הוא מספר שלם חיובי הגדול מ(prime number)מספר ראשוני •:ובעצמו1-שארית רק ב

:למשל•

הם מספרים ראשונים2,3,5,7,11,13,17,19,23,29•

הם מספרים לא ראשוניים4,6,9,82,100,121:ומספרים•

קיים אינסוף מספרים ראשונים: עובדה•

Page 6: מבוא לתכנות מדעי פייתון הרצאה 4 חלק 3 Python
Page 7: מבוא לתכנות מדעי פייתון הרצאה 4 חלק 3 Python

אלגוריתם

כתוב אלגוריתם הבודק האם מספר נתון הוא ראשוני או לא•

Page 8: מבוא לתכנות מדעי פייתון הרצאה 4 חלק 3 Python

אלגוריתם

כתוב אלגוריתם הבודק האם מספר נתון הוא ראשוני או לא•

:תיור כללי של פתרון•

Page 9: מבוא לתכנות מדעי פייתון הרצאה 4 חלק 3 Python

אלגוריתם

כתוב אלגוריתם הבודק האם מספר נתון הוא ראשוני או לא•

:תיור כללי של פתרון•

קבלת קלט ממשתמש1.

Page 10: מבוא לתכנות מדעי פייתון הרצאה 4 חלק 3 Python

אלגוריתם

כתוב אלגוריתם הבודק האם מספר נתון הוא ראשוני או לא•

:תיור כללי של פתרון•

קבלת קלט ממשתמש1.

וממינו1-בדיקת האם יש למספר מחלקים ששונים מ2.

הדפסת תוצאת בדיקה3.

Page 11: מבוא לתכנות מדעי פייתון הרצאה 4 חלק 3 Python

אלגוריתם

X-נסמן את הקלט ב. קבלת קלט ממשתמש1.

.2

Page 12: מבוא לתכנות מדעי פייתון הרצאה 4 חלק 3 Python

אלגוריתם

X-נסמן את הקלט ב. קבלת קלט ממשתמש1.

ללא שאריתN-מתחלק בXנבדוק האם N=2,3,4,….,X-1לכל 2.:ללא שארית אזיN-מתחלק בXאם 1)

Page 13: מבוא לתכנות מדעי פייתון הרצאה 4 חלק 3 Python

אלגוריתם

X-נסמן את הקלט ב. קבלת קלט ממשתמש1.

ללא שאריתN-מתחלק בXנבדוק האם N=2,3,4,….,X-1לכל 2."מספר לא ראשוני"ללא שארית אפשר לעצור את התוכנה ולהדפיס N-מתחלק בXאם 1)

Page 14: מבוא לתכנות מדעי פייתון הרצאה 4 חלק 3 Python

אלגוריתם

X-נסמן את הקלט ב. קבלת קלט ממשתמש1.

ללא שאריתN-מתחלק בXנבדוק האם N=2,3,4,….,X-1לכל 2.ללא שארית אפשר לעצור את התוכנה והדפיס מספר לא ראשוניN-מתחלק בXאם 1)

.3X הוא .........

Page 15: מבוא לתכנות מדעי פייתון הרצאה 4 חלק 3 Python

אלגוריתם

X-נסמן את הקלט ב. קבלת קלט ממשתמש1.

ללא שאריתN-מתחלק בXנבדוק האם N=2,3,4,….,X-1לכל 2.ללא שארית אפשר לעצור את התוכנה והדפיס מספר לא ראשוניN-מתחלק בXאם 1)

.3Xלא ראשוני"נדפיס למסך , הוא לא ראשוני"

Page 16: מבוא לתכנות מדעי פייתון הרצאה 4 חלק 3 Python

אלגוריתם

X-נסמן את הקלט ב. קבלת קלט ממשתמש1.

ללא שאריתN-מתחלק בXנבדוק האם N=2,3,4,….,X-1לכל 1.

ללא שארית אפשר לעצור את התוכנה והדפיס מספר לא ראשוניN-מתחלק בXאם 1)

.1Xנדפיס למסך לא ראשוני, הוא לא ראשוני

raw_input

Page 17: מבוא לתכנות מדעי פייתון הרצאה 4 חלק 3 Python

אלגוריתם

X-נסמן את הקלט ב. קבלת קלט ממשתמש1.

ללא שאריתN-מתחלק בXנבדוק האם N=2,3,4,….,X-1לכל 1.

ללא שארית אפשר לעצור את התוכנה והדפיס מספר לא ראשוניN-מתחלק בXאם 1)

.1Xנדפיס למסך לא ראשוני, הוא לא ראשוני

raw_input

while

Page 18: מבוא לתכנות מדעי פייתון הרצאה 4 חלק 3 Python

אלגוריתם

X-נסמן את הקלט ב. קבלת קלט ממשתמש1.

ללא שאריתN-מתחלק בXנבדוק האם N=2,3,4,….,X-1לכל 1.

ללא שארית אפשר לעצור את התוכנה והדפיס מספר לא ראשוניN-מתחלק בXאם 1)

.1Xנדפיס למסך לא ראשוני, הוא לא ראשוני

raw_input

while

ifprintbreak

Page 19: מבוא לתכנות מדעי פייתון הרצאה 4 חלק 3 Python

אלגוריתם

X-נסמן את הקלט ב. קבלת קלט ממשתמש1.

ללא שאריתN-מתחלק בXנבדוק האם N=2,3,4,….,X-1לכל 1.

ללא שארית אפשר לעצור את התוכנה והדפיס מספר לא ראשוניN-מתחלק בXאם 1)

.1Xנדפיס למסך לא ראשוני, הוא לא ראשוני

raw_input

while

printbreak

print

Page 20: מבוא לתכנות מדעי פייתון הרצאה 4 חלק 3 Python

תוכנה:כעת אנו יכולים לתרגם את האלגוריתם שלנו לתוכנה1.

http://www.codeskulptor.org/#user42_fMjvkLw36J_0.py

Page 21: מבוא לתכנות מדעי פייתון הרצאה 4 חלק 3 Python

תוכנה:כעת אנו יכולים לתרגם את האלגוריתם שלנו לתוכנה1.

http://www.codeskulptor.org/#user42_fMjvkLw36J_0.py

Page 22: מבוא לתכנות מדעי פייתון הרצאה 4 חלק 3 Python

תוכנה:כעת אנו יכולים לתרגם את האלגוריתם שלנו לתוכנה1.

http://www.codeskulptor.org/#user42_fMjvkLw36J_0.py

Page 23: מבוא לתכנות מדעי פייתון הרצאה 4 חלק 3 Python

תוכנה:כעת אנו יכולים לתרגם את האלגוריתם שלנו לתוכנה1.

http://www.codeskulptor.org/#user42_fMjvkLw36J_0.py

Page 24: מבוא לתכנות מדעי פייתון הרצאה 4 חלק 3 Python

תוכנה:כעת אנו יכולים לתרגם את האלגוריתם שלנו לתוכנה1.

http://www.codeskulptor.org/#user42_fMjvkLw36J_2.py

Page 25: מבוא לתכנות מדעי פייתון הרצאה 4 חלק 3 Python

תוכנה:כעת אנו יכולים לתרגם את האלגוריתם שלנו לתוכנה1.

http://www.codeskulptor.org/#user42_fMjvkLw36J_2.py

Page 26: מבוא לתכנות מדעי פייתון הרצאה 4 חלק 3 Python

תוכנה:כעת אנו יכולים לתרגם את האלגוריתם שלנו לתוכנה1.

http://www.codeskulptor.org/#user42_fMjvkLw36J_2.py

Page 27: מבוא לתכנות מדעי פייתון הרצאה 4 חלק 3 Python

תוכנה:כעת אנו יכולים לתרגם את האלגוריתם שלנו לתוכנה1.

http://www.codeskulptor.org/#user42_fMjvkLw36J_2.py

Page 28: מבוא לתכנות מדעי פייתון הרצאה 4 חלק 3 Python

15487469:כעת אנו יכולים לתרגם את האלגוריתם שלנו לתוכנה1.

http://www.codeskulptor.org/#user42_fMjvkLw36J_2.py

Page 29: מבוא לתכנות מדעי פייתון הרצאה 4 חלק 3 Python

סיכוםרישוניכתבנו אלגוריתם שבודק האם מספר הוא מספר ראשוני או לא 1.

תרגמנו את האלגוריתם לתוכנה2.

ראינו שעבור מספרים ראשונים גדולים התוכנה רצה המון זמן3.

אלה מספיק לבדוק את כל ,N-עד1-אפשר להוכיח שאין טעם לבדוק כל המחלקים מ4.תיקון זה הופך את התוכנה לתוכנה הרבה יותר , sqrt(N)+1עד 1-המחלקים מ

(תרגיל בית)מהירה

Page 30: מבוא לתכנות מדעי פייתון הרצאה 4 חלק 3 Python

• Igor Kleiner (Hebrew version adaptation 2016)