int Su(num)
{
int i,j,k=0,a[100];
for(i=2;i<=num;i++)
{
for(j=2;j<=i/2;j++)
{
if(i%j==0)
break;
}
if(j>i/2)
{
a[k]=i;
k++;
}
}
for(i=0;i
printf("%d ",a[i]);
}
return 0;
}
程序作用是判断1到num有多少个素数,保存到数组a中。
在SICP中有一个最简单的求素数的算法,
是基于概率的算法,可以求长度达几百数的素数。
可用于高强度的公开密钥加密算法。
而常规的筛选法只能求比较小的素数。
请参考《计算机程序的构造与解释》(SICP)