Предмет: Информатика, автор: 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: Хм... все отступления стёрли...

Ответы

Автор ответа: mirageKZ
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
Предмет: Алгебра, автор: Liza11122
Предмет: Қазақ тiлi, автор: dddddddddddhbvhbvccn