Пример за проверу да ли је цео број прост број или не користи фор петљу и иф … елсе наредбу. Ако број није прост, у излазу се објашњава зашто то није прост број.
Да бисте разумели овај пример, требало би да имате знање о следећим Питхон програмским темама:
- Питхон иф … елсе Изјава
- Питхон за Лооп
- Питхон се ломи и наставља
Цео позитиван број већи од 1 који нема других фактора осим 1, а сам број назива се прост број. 2, 3, 5, 7 итд. Су прости бројеви јер немају других фактора. Али 6 није прост (то је композитни) од, 2 x 3 = 6
.
Изворни код
# Program to check if a number is prime or not num = 407 # To take input from the user #num = int(input("Enter a number: ")) # prime numbers are greater than 1 if num> 1: # check for factors for i in range(2,num): if (num % i) == 0: print(num,"is not a prime number") print(i,"times",num//i,"is",num) break else: print(num,"is a prime number") # if input number is less than # or equal to 1, it is not prime else: print(num,"is not a prime number")
Оутпут
407 није прост број 11 пута 37 је 407
У овом програму променљива нум се проверава да ли је проста или не. Бројеви мањи од или једнаки 1 нису прости бројеви. Стога настављамо само ако је број већи од 1.
Проверавамо да ли је нум тачно дељив са било којим бројем од 2 до нум - 1. Ако нађемо фактор у том опсегу, број није прост. Иначе је број прост.
Можемо смањити опсег бројева тамо где тражимо факторе.
У горњем програму наш опсег претраге је од 2 до num - 1
.
Могли смо да користимо домет, range(2,num//2)
или range(2,math.floor(math.sqrt(num)))
. Потоњи опсег заснован је на чињеници да композитни број мора имати фактор мањи од квадратног корена тог броја. У супротном, број је прост.
Можете да промените вредност променљиве нум у горе наведеном изворном коду да бисте проверили да ли је број прост или не за остале целобројне бројеве.