如何解决二级c语言素数问题?

来源:百度知道 编辑:UC知道 时间:2024/06/14 04:27:13
发现二级c语言上机题中常涉及素数,怎么解决?

其实素数并不难,只是我感觉有点麻烦罢了,我做题常遇到这样的问题
一: 判断一个数是不是素数
二: 判断小于一个数的所有素数,并利用函数 调用 输出
三:输入一个数,输出比它大的n个素数。
等等吧!!!
第一个简单
scanf("%d",&n);
int i,k=1;
for(i=2;i<n;i++)
{ if(n%2==0) k=0;break;
else k=1;}
if(k==1)printf("the number is the sushuo");

像第二个都得用两个for循环、
int i,j;n;int a[100];
for(i=3;i<n;i++)
for(j=2;j<i;j++)
if((i%j!=0)k=1;
else k=0;

if(k==1)&&(j>=i)
a[m++]=j;
有一点 2 也是素数,我也看了资料,对2放在for循环中来判断的不多,用C++的语法能实现,在C 中一般都单独列出说明。
例如a[0]=2;
我只是简单给你写写,可能会有一些小错误,不过总体思路就是这样的。我也是在学习中,能力有限,不能给你很好的解答。见谅!!!!!!

晕LS的,bool是C++里面的类型。。。
----
算法的基本思路:要判断n是否是素数,即判断n是否有1和n以外的约数,那么对于每个比n小、大于1的数是否能整除n做判断即可。
int isprime(int n)
/*返回1代表是素数,0则不是素数*/
{
int i;
if(n<2)
return 0;
/*小于2的不可能是素数,先排除*/
if(n==2)
return 1;
for(i=2;i&