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

Post on 22-Jan-2017

46 views 10 download

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

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

3חלק 4הרצאה

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

2016Igor Kleiner

מטרה

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

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

מספר ראשוני

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

מספר ראשוני

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

:למשל•

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

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

מספר ראשוני

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

:למשל•

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

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

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

אלגוריתם

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

אלגוריתם

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

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

אלגוריתם

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

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

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

אלגוריתם

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

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

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

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

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

אלגוריתם

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

.2

אלגוריתם

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

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

אלגוריתם

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

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

אלגוריתם

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

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

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

אלגוריתם

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

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

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

אלגוריתם

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

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

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

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

raw_input

אלגוריתם

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

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

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

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

raw_input

while

אלגוריתם

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

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

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

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

raw_input

while

ifprintbreak

אלגוריתם

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

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

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

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

raw_input

while

printbreak

print

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

• Igor Kleiner (Hebrew version adaptation 2016)