超级素数(sprime)
问题 G: 超级素数(sprime)
时间限制: 1 Sec 内存限制: 64 MB提交: 51 解决: 12
[提交][状态][讨论版]
题目描述
超级素数是指一个素数,每去掉后面一个数字,总能保证剩下的数为质数,例如:
373->37->3
这是一个长为3的超级素数。
输入
输入一个整数n (10≤n≤108)。
输出
从小到大输出所有小于等于n的超级素数,每个超级素数之间留一个空格。末尾也有一个空格
样例输入
10
样例输出
2 3 5 7
现在我看到关于数学方面的直接没有了免疫力,感觉头都大,应该用搜索的题,大了表预处理也过了,这次的题全是搜索,看到数学知识,直接都song了、、、
#include <cstdio> using namespace std; int s[83]={ 2,3,5,7,23,29,31,37,53,59,71,73,79,233,239,293,311,313,317,373,379,593,599,719,733,739,797, 2333,2339,2393,2399,2939,3119,3137,3733,3739,3793,3797,5939,7193,7331,7333,7393,23333,23339, 23399,23993,29399,31193,31379,37337,37339,37397,59393,59399,71933,73331,73939,233993,239933, 293999,373379,373393,593933,593993,719333,739391,739393,739397,739399,2339933,2399333, 2939999,3733799,5939333,7393913,7393931,7393933,23399339,29399999,37337999,59393339, 73939133 }; int main(){ int n,num=0; //freopen("data.out","w",stdout); scanf("%d",&n); for(int i=0;i<83;i++){ if(s[i]<=n) printf("%d ",s[i]); else break; } printf("\n"); }