Предмет: Информатика,
автор: alina20032508
Пытаюсь освоить программирование, но получается очень плохо. Проверьте, пожалуйста, программу и укажите на ошибки
Вот задача
Назовём натуральное число подходящим, если у него ровно 3 различных простых делителя. Например, число 180 подходящее (его простые делители — 2, 3 и 5), а число 12 — нет (у него только два различных простых делителя). Определите количество подходящих чисел, принадлежащих отрезку [50 001; 90 000], а также наименьшее из таких чисел. В ответе запишите два целых числа: сначала количество, затем наименьшее число.
Вот программа (Питон):
for i in range (50001, 90001):
numDel=0
for j in range (2,i):
for l in range (2,j):
if l!=j and j%l!=0:
d=j
if i!=d and i%d==0:
numDel=numDel+1
if numDel==3:
print(i)
alina20032508:
Хм... все отступления стёрли...
Ответы
Автор ответа:
0
Ответ:
Для контроля работы программы можно раскомментарить строку
print(gDel, i, s)
Объяснение:
так будет попроще:
# функция определения простого числа.
# Если простое - True, иначе -False
def isprime(i):
k=2
while k*k<=i and i%k!=0:
k+=1
return (k*k > i)
fmin=0
gDel=0
for i in range (50001, 90001):
numDel=0
s=' делители:'
for j in range (2, round(i/2)):
if i%j==0 and isprime(j):
numDel+=1
s+=' ' + str(j)
if numDel==3:
if fmin==0: fmin=i
gDel+=1
# print(gDel, i, s)
print(gDel, fmin)
Похожие вопросы
Предмет: Окружающий мир,
автор: Рамзик111
Предмет: Окружающий мир,
автор: 29081963
Предмет: Русский язык,
автор: SVBur
Предмет: Алгебра,
автор: Liza11122
Предмет: Қазақ тiлi,
автор: dddddddddddhbvhbvccn