Description
Alice非常喜欢素数,她发现有些素数非常有意思。比如239,它是个素数;把239的最后一位去掉是23,也是个素数;把23的最后一位去掉是2,也是个素数。但是Alice不太善于计算,她请你帮她计算出所有满足这样条件的素数。
Input
无
Output
按素数大小依次输出,每行先输出序号,然后输出符合条件的素数,中间用空格隔开。
Sample Input
Sample Output
1 2
2 3
3 5
4 7
5 23
解题思路:
#include<bits/stdc++.h>
using namespace std;
int prime(int a)
{
int i,k;
for(i=2;i*i<=a;i++)
{
if(a%i==0)
return 0;
}
return 1;
}
int poww(int a)
{
int result=1;
for(int i=0;i<a;i++)
{
result *= 10;
}
return result;
}
int main()
{
int a[100]={0,2,3,5,7},b[100]={1,3,7,9};
int n=4;
int cnt=1;
int judge;
for(int i=1;i<5;i++)
printf("%d %d\n",i,a[i]);
while(n<83)
{
for(int i=1;i<84;i++)
{
if(a[i]>poww(cnt-1)&&a[i]<poww(cnt))
{
for(int j=0;j<4;j++)
{
judge = a[i]*10+b[j];
if(prime(judge))
{
n++;
printf("%d %d\n",n,judge);
a[n] = judge;
}
}
}
}
cnt++;
}
return 0;
}