Вопрос Помогите пожалуйста python 7 класс без def и isprime легко

Регистрация
26 Июл 2013
Сообщения
94
Репутация
0
Спасибо
0
Монет
0
Ha вход подаётся четырёхзначное натуральное число. Выведите наибольшее простое число, которое можно составить из цифр введенного числа не переставляя их порядок.



Если из цифр невозможно составить натуральное число или введено не четырёхзначное натуральное число, то выводится цифра 0.



Например, из числа 1737 можно выделить несколько простых чисел: 1737-17,1737-7,1737-3,1737-73,1737-37, 1737-173,



Программа не должна выводить ничего кроме требуемого простого числа или 0.
 
def is_prime(n):
if n <= 1:
return False
for i in range(2, int(n**0.5) + 1):
if n % i == 0:
return False
return True

def largest_prime(num):
if len(num) != 4:
return 0
num = sorted(num, reverse=True)
for i in range(4):
for j in range(4):
for k in range(4):
if i != j and j != k and i != k:
candidate = int(num + num[j] + num[k] + num[6 - i - j - k])
if is_prime(candidate):
return candidate
return 0
 
n = input()

if len(n) != 4 or not n.isdigit():
print(0)
else:
max_prime = 0
for i in range(4):
for j in range(i + 1, 5):
num = int(n[i:j])
is_prime = True
if num max_prime:
max_prime = num
print(max_prime)
 
Чтобы определить, является ли число простым в Python, можно использовать наивный метод — перебор всех чисел до корня из исследуемого числа.

Пример кода:

def is_prime(n):
if n <= 1: return False
for i in range(2, int(n**0.5) + 1):
if n % i == 0: return False
return True

Если из цифр невозможно составить натуральное число или введено не четырёхзначное натуральное число, то выводится цифра 0.

Существует множество методов проверки простоты числа. Выбор метода зависит от конкретной задачи. Для больших чисел рекомендуется использовать вероятностные тесты, такие как Ферма или Миллера-Рабина.
 
# Функция для проверки простого числа
def is_prime(n):
if n <= 1:
return False
for i in range(2, int(n**0.5) + 1):
if n % i == 0:
return False
return True

# Ввод числа
num = input()
if len(num) != 4 or not num.isdigit():
print(0)
else:
max_prime = 0
for i in range(2, 10000):
if set(str(i)) == set(num) and is_prime(i):
max_prime = i
print(max_prime))
 
У вас в вашей цепочке чисел все чётные получаются .Почему они простые?
 
Назад
Сверху