Что не так с моим кодом? разберите его Я его делал к заданию:Каков самый большой делитель числа 600851475143, являющийся простым числом?
d=1
a=194
i=1
for i in range(2, a//2+1):
if (a%i==0) and (d<i):
d=i
i=i+1
continue
print(d)
293
392
Ответы на вопрос:
Это четвертая версия кода. Еще быстрее. Можно поиграться и с большими числами, например 600851475143777, но некоторые простые большие может искать долго.
n=600851475143777
md=0
i=3
while i<n:
while not(n%i):
n=n//i
md=i
i+=2
print (md) if n<md else print (n)
Например в 600851475143777 есть в множителях 11, 13, 41, 28871, 3549649.
Объяснение:
67-1=66 66 имеет делители 66, 33, 11,3 проверяем: 67 (10сс) =11 (66сс) - не подходит 67 (10сс) = 20 (33сс) - не подходит 67 (10сс) =61 (11сс) не подходит 67 (10сс) = 2111 (3сс) ответ : n=3
Популярно: Информатика
-
александра52928.03.2023 11:44
-
Mesnikfff29.12.2021 20:59
-
194526911.05.2020 18:44
-
maalia1203.09.2021 01:44
-
котик92606.03.2021 23:09
-
ladomix25.06.2020 02:06
-
irynafurmanets25.05.2023 17:39
-
mashkasuper126.01.2021 13:11
-
Corrnet199908.06.2020 16:34
-
covepoxamu05.12.2021 12:48