P1218题解

· · 题解

不知道题目的快去看!!!!!

一个很傻逼 大聪明的算法

不管了,加钠上题解!

#include<bits/stdc++.h>
using namespace std;
bool isprime(int x) 
{
    if ((x==1)||((x%2==0)&&(x!=2))) return false;
    for(int i=3;i*i<=x;i+=2)
        if(x%i==0)
            return false;
    return true;
}
int main()
{
    int n;
    cin>>n;
    int m=pow(10,n-1);
    for(int i=m*2+(m-1)/9;i<(m*10-1)/9*7;i+=2)
    {
        int ii=i*10/m;
        if((ii!=23)&&(ii!=29)&&(ii!=31)&&(ii!=37)&&(ii!=53)&&(ii!=59)&&(ii!=71)&&(ii!=73)&&(ii!=79)||i%10==5)continue;
        bool flag=1;int k=m/100;
        for(int j=0;j<n-2;j++)
        {
            flag=isprime(i/k);
            if(!flag)break;
            k/=10;
        }
        if(flag)cout<<i<<endl;
     } 
    return 0;
}

秒了!