Przykład sprawdzania, czy liczba całkowita jest liczbą pierwszą, czy nie przy użyciu pętli for i instrukcji if… else. Jeśli liczba nie jest liczbą pierwszą, w wynikach zostanie wyjaśnione, dlaczego nie jest liczbą pierwszą.
Aby zrozumieć ten przykład, powinieneś znać następujące tematy programowania w Pythonie:
- Python if… else Instrukcja
- Python for Loop
- Python przerywa i kontynuuje
Dodatnia liczba całkowita większa niż 1, która nie ma innych czynników oprócz 1, a sama liczba jest nazywana liczbą pierwszą. 2, 3, 5, 7 itd. Są liczbami pierwszymi, ponieważ nie mają żadnych innych czynników. Ale 6 nie jest liczbą pierwszą (jest złożona), ponieważ 2 x 3 = 6
.
Kod źródłowy
# 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")
Wynik
407 nie jest liczbą pierwszą 11 razy 37 równa się 407
W tym programie zmienna num jest sprawdzana, czy jest liczbą pierwszą, czy nie. Liczby mniejsze lub równe 1 nie są liczbami pierwszymi. Dlatego postępujemy tylko wtedy, gdy liczba jest większa niż 1.
Sprawdzamy, czy liczba jest dokładnie podzielna przez dowolną liczbę od 2 do num - 1. Jeśli znajdziemy czynnik w tym zakresie, liczba nie jest liczbą pierwszą. W przeciwnym razie liczba jest liczbą pierwszą.
Możemy zmniejszyć zakres liczb, w których szukamy czynników.
W powyższym programie zakres wyszukiwania wynosi od 2 do num - 1
.
Mogliśmy użyć zakresu range(2,num//2)
lub range(2,math.floor(math.sqrt(num)))
. Drugi zakres opiera się na fakcie, że liczba złożona musi mieć współczynnik mniejszy niż pierwiastek kwadratowy z tej liczby. W przeciwnym razie liczba jest liczbą pierwszą.
Możesz zmienić wartość zmiennej num w powyższym kodzie źródłowym, aby sprawdzić, czy liczba jest liczbą pierwszą dla innych liczb całkowitych.