题目链接:点击打开链接
#include <stdio.h>
#include <math.h>
int ff(long long x)
{
long long i;
if (x==1) return 0;
for (i=2;i<=sqrt(x);i++)
if (x % i==0) return 0;
return 1;
}
int a[10];
void f(long long s,int n)
{
if (n==0)
{
printf("%lld\n",s);
return;
}
for (int i=0;i<=5;i++)
{
s=s*10+a[i];
if (ff(s))
f(s,n-1);
s/=10;
}
}
int main()
{
int n;
a[0]=2;
for (int i=1;i<=5;i++)
a[i]=i*2-1;
while (~scanf("%d",&n))
{
f(0,n);
}
return 0;
}
本文介绍了一个用于生成特定长度的素数的算法实现。通过递归方式构造满足条件的素数,并详细展示了如何通过排除法检查一个数是否为素数。
778

被折叠的 条评论
为什么被折叠?



