Форум » Обработка целых чисел » задание 25 номер 105 Нужна подсказка в поиске пути решения » Ответить

задание 25 номер 105 Нужна подсказка в поиске пути решения

flo23: 105) Рассматриваются целые числа, принадлежащих числовому отрезку [523456; 578925], которые представляют собой произведение двух различных простых делителей. Найдите такое из этих чисел, у которого два простых делителя меньше всего отличаются друг от друга. В ответе запишите простые делители этого числа в порядке возрастания. Если подходящих чисел несколько, запишите в ответе делители наименьшего из них. Я предложила такое решение: [pre2] k=0 p=[] f=0 raz2=1000000000000000 for i in range(523456, 523500+1): b = [] for j in range(1,int(i**0.5)+1): if j*j==i: b.append(j) else: if i%j==0: b.append(j) b.append(i//j) b.sort() d=[] for x in range(len(b)): c=[] r = b[x] for y in range(1,int(r**0.5)+1): if y*y==r: c.append(y) else: if r%y==0: c.append(y) c.append(r//y) if len(c)==2: c.sort() d.append(r) d.sort() for ch1 in range(len(d)-1): for ch2 in range(ch1+1, len(d)): if d[ch1]*d[ch2]==i: print(i,d) [/pre2] Что я забываю учитывать? Или совсем мое решение не имеет места быть?

Ответов - 1

Поляков: 1) начинайте перебор делителей с 2 (первое простое число) 2) сразу отбрасывайте числа, у которых более 2-х нетривиальных делителей 3) если у числа два нетривиальных делителя, они оба простые, находите их разность и сравниваете с минимумом.



полная версия страницы