JOI2006模擬試験1 問題5@Python(-57)
前やった時、悔しいので解答見ないとか言ったけど、結局見た。
まさかとは思ったけど、やっぱり同じ素数でバッサリいけるのか!!!
ただし、C++で組み直すのはもはやタルいので、多倍長のPythonで。
#!/usr/bin/python # -*- coding: utf-8 -*- from math import * def search(num, depth): if(depth == n): for i in xrange(2, int(ceil(sqrt(num)))): if(num % i == 0): return False print "%d" % num return True for i in xrange(9, -1, -1): if(search(num + i * digits[m + n - 1 - depth] + i * digits[depth], depth + 1)): return True n, c = [int(x) for x in raw_input().split(' ')] digits = [10**x for x in xrange(2*n+2)] m = n if(c>=0): m += 1 if(not search(c * digits[n], 0)): print "%d" % (digits[m + n] - 1) else: if(n == 1): search(0, 0) else: print "%d" % (digits[m + n] - 1)