我正在寻找更好的方法来解决Google的Re-ID问题。而不是键入" Re-ID"这里的描述,我将简单列出相关部分:
Minion将查找他的整数作为串联素数串的索引 - 即2357111317192329...
他新的" ID"是通过根据Minion的整数赋值在字符串中查找索引值并将其接下来的4个数字连接起来生成的 - 即如果Minion的整数赋值为3
,则他的新ID将是71113
(7
是字符串索引3处的值,然后我们添加接下来的4位数/字符)
解决这个问题我:
is_prime()
answer()
import math
def is_prime(n):
if n % 2 == 0 and n > 2:
return False
return all(n % i for i in range(3, int(math.sqrt(n)) + 1, 2))
primes = ''
for i in range(2,21000,1):
if len(primes) < 10005:
if is_prime(i):
primes = primes + str(i)
else:
break
def answer(n):
re_id = primes[n:n+5:1]
return(re_id)
可能改善的领域
21000
完全是任意的。通过反复试验,我发现21,000便于Minion整数分配10000加上5个附加数字/字符。感谢您的见解。快乐星期五。
答案 0 :(得分:0)
我已使用此代码完成了挑战。
def answer(b):
bag = ""
for num in range(0,20500):
if num > 1:
for j in range(2,num):
if (num % j) == 0:
break
else:
if len(bag) >= 10006:
break
else:
bag += str(num)
return bag[b:b+5]