Я застрял, теперь задание
по заданному N найдите положение N + 4 символов в строке простых чисел.
Например, строка простых чисел имеет вид 23571113 ...
Итак:
n = 3
номер = 71113
n = 0
число = 23571
n не может быть больше 10000
Вот мой код, который заставил меня задуматься о том, чтобы быть эффективным, но когда я пытаюсь выполнить тестовый пример 10000, он занимает слишком много времени, поэтому я думаю, что я провалил 4 из 10 тестовых случаев:
def answer(n):
# your code here
n = int(n)
ID_len = 0
input_limit = 10000 # adjustable limit for n
y = 0 # Counter
if n<= input_limit: #checks to make sure you're under the limit of 10000 for n
try:
while (ID_len < (n+5)):
y += 2
primes = [x for x in range(2, y + 1) if all(x%i for i in range(2,x))]
prime_str = ''.join(map(str,primes))
ID_len = len(prime_str)
#print prime_str
return prime_str[n:n+5]
except:
pass
else:
print ("pick a number smaller than {0}".format(input_limit))
Что я могу сделать, чтобы сделать это более эффективным, или я просто слишком обдумываю эту проблему?