Pull to refresh

Comments 13

UFO just landed and posted this here

Вот 5 строк, без сторонних библиотек:

for x in range(7654321, 0, -2):
    for p in range(3, int(x ** .5), 2):
        if not x % p: break
    else:
        if "1234567".startswith(''.join(sorted(str(x)))): exit(print(x))

Крохоборствуя на пробелах и выкинув корень, можно выжать 140 символов, влезть в рамки изначального ограничения твиттера. Но зачем?

Кратчайшее решение все же

print(7652413)

Если мы используем знания о делимости и проч...

Предлагаю опустить "print", так как в задаче не сказано про то, что бы вывести число на экран. Достаточно его просто найти.

Там и не сказано, что его надо найти. Спрашивается какое оно, а не чему равно.

import itertools as t,sympy
print([j for i in(7,4)for j in map(''.join,t.permutations('987654321'[-i:]))if sympy.isprime(int(j))][0])

Ваше решение, сокращенное и в одну строку. 134 символа.

Предлагаю наибольшее пан-цифровое простое число называть пан-атаман-цифровое число.

каждая из цифр от 1 до n используется в нем ровно один раз

максимальное пан-цифровое число – это 987_654_321

Я не понял, откуда возникло ограничение 10-тичной системой счисления.

Спасибо, что напомнили об этом сборнике задач
Кто не в курсе - projecteuler.net

Странное укорачивание. Так можно запихнуть указанную функцию в библиотеку, которую обозвать одной буквой, потом вызвать ее импортом и выполнить :)

Будет что-то в духе:

import m
m.m()

Sign up to leave a comment.

Articles