[P2667]超级质数

来源:互联网 发布:经商软件 编辑:程序博客网 时间:2024/05/22 14:05

原题链接

一开始想用线性筛来着
想了想没法做

后来看了题解想打表
然后觉得太偷懒了就放弃了

总之最后就搜索了
构造法

#include<iostream>#include<cstring>#include<algorithm>#include<cstdio>#include<cmath>#include<queue>#include<vector>#include<climits>#include<string>#include<cstdlib>#define LL long long#define MOD 1000000007#define pi 3.141592653589using namespace std;int h[7]={0,1,2,3,5,7,9},n,tot,ans[90];bool prime(int x){    int i;    for(i=2;i<=sqrt(x);i++)        if(x%i==0) return false;    return true;}void dfs(int x){    int tmp,i;    if(x>n) return;    tot++;    ans[tot]=x;     for(i=1;i<=6;i++)    {        tmp=x*10+h[i];        if(prime(tmp)) dfs(tmp);        }}int main(){    int i;    scanf("%d",&n);    for(i=2;i<=5;i++)    {                   dfs(h[i]);          }    sort(ans+1,ans+tot+1);    printf("%d\n",tot);    for(i=1;i<=tot;i++)        printf("%d\n",ans[i]);    return 0;}
原创粉丝点击