超级素数(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("
");

}
原文地址:https://www.cnblogs.com/acmtime/p/5723221.html