if n < 2:
print("Число должно быть больше 1")
quit()
elif n == 2:
print("Это простое число")
quit()
i = 2 # первый делитель
limit = int(math.sqrt(n))
while i <= limit:
if n % i == 0:
print("Это сложное число")
quit() # выход из программы
i += 1 # переход к следующему делителю
print("Это простое число")
Число 2 является простым, но при этом оно делится на 2. Цикл while определил бы двойку как составное число, что неправильно. Поэтому для числа 2 необходима отдельная проверка.
Программа дойдет до последней строчки кода, только если не был найден ни один делитель. Если это так, значит число простое.
Пример функции, определяющей является ли число простым:
from math import sqrt
def is_prime(n):
if n < 2:
return False
if n == 2:
return True
limit = sqrt(n)
i = 2
while i <= limit:
if n % i == 0:
return False
i += 1
return True
for i in range(3):
num = int(input())
print(is_prime(num))
Пример выполнения:
17
True
57
False
103
True
В списке чисел проверить, все ли элементы являются уникальными, т. е. каждое число встречается только один раз.
Решить данную задачу на языке Python можно несколькими способами. Классический вариант - брать по очереди элементы списка и сравнить каждый со стоящими за ним. При первом же совпадении элементов делается вывод, что в списке есть одинаковы элементы и работа программы завершается.
Еще одним способом решения может быть использование типа данных "множества" (set). Как известно, в множествах не может быть одинаковых элементов. При преобразовании списка во множество в нем одинаковые элементы будут представлены единожды, то есть дубли удалятся. Если после этого сравнить длину исходного списка и множества, то станет ясно, есть ли в списке одинаковые элементы. Если длины совпадают, значит все элементы списка уникальны. Если нет, значит, были одинаковые элементы.
Допустим, исходный список генерируется таким кодом:
Достарыңызбен бөлісу: |