Форум » Обработка целых чисел » Задание 25 Задача 5063 » Ответить

Задание 25 Задача 5063

Permannent: Не сходятся ответы. и может по рекомендуете более логичное решение. Само задание: Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы: - символ «?» означает ровно одну произвольную цифру; - символ «*» означает любую последовательность цифр произвольной длины; в том числе «*» может задавать и пустую последовательность. Среди натуральных чисел, больших 4679000, найдите числа, все простые делители которых, выписанные без пробелов по возрастанию, образуют число, соответствующее маске «27*39?» или «34*2?7». Например, число 234566 имеет 3 простых делителя: 2, 17, 6899, они образуют число 2176899, которое соответствует маске «21*9». В ответе укажите первые 5 найденных чисел в порядке возрастания, справа от каждого числа запишите его наибольший простой делитель. [pre2] import re def simply(n): for i in range(2, int(n ** .5) + 1): if n % i == 0: return False else: return True def ecv(t): p1 = re.fullmatch('27\d+39\d{1}', t) p2 = re.fullmatch('34\d+2\d{1}7', t) if p1 is not None or p2 is not None: return True else: return False d = 0 num = 4679000 while d < 5: s = [] t = '' for i in range(2, int(num ** .5) + 1): if num % i == 0: if simply(i): s.append(str(i)) if simply(num // i): s.append(str(num // i)) s.sort(key=int) t = ''.join(s) if len(t) >= 1 and t[0] not in '23': break else: if ecv(t): d += 1 print(num, s[-1], '\t\tпростые делители:', *s) num += 1 [/pre2] Мои ответы: 4679042 397 простые делители: 2 71 83 397 4679733 36277 простые делители: 3 43 36277 4680214 30391 простые делители: 2 7 11 30391 4680309 3257 простые делители: 3 479 3257 4680873 1297 простые делители: 3 401 1297 И я проверил одно из чисел в ответах автора - В. Селезнева. 4679199 делится нацело на 3 и на 7. Это первые простые делители. Значит начало будет 37... что уже не соответствует маске. Ну, или я не так вообще понимаю задание.

Ответов - 1

Поляков: Спасибо, ответы исправлены. У вас все верно.



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