Project Euler Problem 51 Prime digit replacements
题意
将两位数*3的第一个数字代换为任意数字,在九个可能值中有六个是素数:13、23、43、53、73和83。
将五位数56**3的第三和第四位数字代换为相同的任意数字,就得到了十个可能值中有七个是素数的最小例子,这个素数族是:56003、56113、56333、56443、56663、56773和56993。56003作为这一族中最小的成员,也是最小的满足这个性质的素数。
通过将部分数字(不一定相邻)代换为相同的任意数字,有时能够得到八个素数,求满足这一性质的最小素数。
答案是*2*3*3
思路
(1)先打个素数表
(2)对每个素数进行位数计算(计算有几位),然后枚举换哪一位(我用二进制下进行枚举,个位不能进行枚举,枚举个位的话有一般都是偶数,所有从十位开始枚举)
(3)用set存数最后计算set的大小是否等于8,输出结果。
代码
1 |
|