c语言素数的算法

#include<stdio.h>
int fun(int m)
{
********program***********

************end***************

}
main()
{
int n;
printf("Please enter n:");
scanf("%d",&n);
if(fun(n)==1)
{
printf("YES\n");
printf("%d",n);
}
else
printf("N0!");
}

思路如下:
1、求2-n之间的所有素数
2、创建一个数组a[n+2],其下表为2...n+1
3、数组的功能是记录那些数十素数,其下标表示素数,元素初始化时全为1,表示全部数假设都是素数
4、从2开始往后访问数组的每一个元素,如果这个数十素数就输出,否则往后遍历
5、遍历的同时如果这个数i是素数,则进一步往后将这个数的倍数2*i,3*i,....将这些数都标记为0表示不是素数 6、执行完毕将输出所有素数了
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-03-01
int i,k;
k=sqrt(x);
for(i=2;i<=k;i++)
if(x%i==0) break;
if(i>k) return 1;//如果是素数返回1,如果非素数返回0
else
return 0;本回答被提问者和网友采纳
第2个回答  2020-02-19

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网