Уведомления

Группа в Telegram: @pythonsu

#1 Март 30, 2021 10:28:49

Lee
Зарегистрирован: 2021-03-21
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Задача 25 егэ

Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку 190201, 190221 числа, имеющие ровно 4 различных делителей. В ответе для каждого найденного числа запишите два его наибольших делителя в порядке возрастания.
Я написал вот такую программу, но она ничего не выдает

[code python]from math import sqrt
a = 190201
b = 190221
for n in range(a, b + 1):
x=[]
if int(sqrt(n))== sqrt(n):
for j in range(2,int(sqrt(n))+1):
if n%j==0:
x.append(j)
if j!=n//j:
x.append(n//j)
if len(x)>=2:
break
if len(x)==2:
x.sort
print(n) [/code]

Офлайн

#2 Март 30, 2021 13:36:32

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Задача 25 егэ

Это потому что вы не поняли в предыдущие разы что именно вы делаете.
if int(sqrt(n))== sqrt(n): будет означать что число имеет НЕЧЕТНОЕ число делителей, вам же нужно “ имеющие ровно 4 различных делителей”. Чнтыре, внезапро, ЧЕТНОЕ. тоесть вы отсеиваете нужные числа и пытаетесь посчитать количество делителей там где считать не нужно.



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#3 Март 30, 2021 20:56:39

Lee
Зарегистрирован: 2021-03-21
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Задача 25 егэ

Спасибо, исправил! Работает)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version