编写一个判断是否为素数 c语言素数的c语言程序

C语言素数的几种判断方法_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
C语言素数的几种判断方法
上传于|0|0|文档简介
&&判断C语言中素数的几种方法
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
你可能喜欢请不要认为这是一个小问题0。请用c语言编写一个获取1~100间的所有素数的方法。
请用标准c编写获取1~100的素数的程序,嘿嘿,这是一个初学c语言的都会遇到的问题,那么现在,请用尽可能多的方法达到目的,并且尽量使代码完美,各位大神,拜托了。。。。。。。
没人来挑战吗!???
#include&stdio.h&
int main(){
printf(&2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97\n&);
--- 共有 4 条评论 ---
#include&stdio.h&
int main(){
puts("2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97");
还有些更给力的方法吗???
这是一个小问题啊.判断素数基本就2个办法:从2-sqrt(n)约,或者素数筛.不管哪个,c实现起来都很简单.
--- 共有 1 条评论 ---
大神啊,你说的两个方法我都没听过啊,我的书上只有两种方法:①利用for语句和标志变量②利用函数实现。。。??????求指教。。
#include &stdio.h&
#include &math.h&
double f(int x)
return 44331. - *x + *pow(x,2) -
*pow(x,3) + 97469*pow(x,4) -
48667*pow(x,5) + 76007*pow(x,6) -
71545*pow(x,7) + 320.46*pow(x,8) -
38.04*pow(x,9) + 3.174*pow(x,10) -
0.4558*pow(x,11) + 0.35203*pow(x,12) -
0.7447395*pow(x,13) + 0.*pow(x,14) -
1.1015e-7*pow(x,15) + 1.9895e-9*pow(x,16);
int main(int argc, char *argv[])
printf(&2 3 5 7 11 13 17 19 &);
for(i=1;i&=17;i++)
printf(&%0.f &, f(i));
} 测试通过
--- 共有 1 条评论 ---
你好,我是新手,有些看不懂。。。可不可以解释下原理。。。?
引用来自“yhc0309”的答案#include &stdio.h&
#include &math.h&
double f(int x)
return 44331. - *x + *pow(x,2) -
*pow(x,3) + 97469*pow(x,4) -
48667*pow(x,5) + 76007*pow(x,6) -
71545*pow(x,7) + 320.46*pow(x,8) -
38.04*pow(x,9) + 3.174*pow(x,10) -
0.4558*pow(x,11) + 0.35203*pow(x,12) -
0.7447395*pow(x,13) + 0.*pow(x,14) -
1.1015e-7*pow(x,15) + 1.9895e-9*pow(x,16);
int main(int argc, char *argv[])
printf(&2 3 5 7 11 13 17 19 &);
for(i=1;i&=17;i++)
printf(&%0.f &, f(i));
} 测试通过太狠了,给个拟合的多项式…………
&实在觉得这种给题目不给自己做发的帖子有点骗代码交差的嫌疑
--- 共有 1 条评论 ---
我就是来寻求,多种方法滴,,呵呵呵
#include&stdio.h&
#include&string.h&
#include&math.h&
#include&assert.h&
#define MAXN 30
int a[MAXN];
void primer(int n)
& & int i,j,k;
& & memset(a,0,sizeof(int)*MAXN);
& & a[k =0] =2;
& & for(i =3;i&=n;i +=2)
& & & & for(j =0;a[j]&=sqrt(i);j++)
& & & & & & if(i %a[j] ==0)
& & & & & & {
& & & & & & & &
& & & & & & }
& & & & if(a[j]&sqrt(i))
& & & & & & a[++k] =i;
& & & & & & assert(k&MAXN); //加assert宏检验,避免数组下标越界
int main()
& & int i,n;
& & scanf(&%d&,&n);
& & primer(n);
& & for(i =0;a[i]!=0;i++)
& & & & printf(&%-4d &,a[i]);
& & & & if((i+1)%10 ==0)
& & & & & & printf(&\n&);
& & return 0;
--- 共有 1 条评论 ---
谢谢好心人,虽然我不一定看得懂。
以上回答都有局限性,如果是1w甚至10w以内的素数呢?
lz去维基百科搜 “埃拉托斯特尼筛法& 吧 或是查看编程珠玑(续)&^_^
--- 共有 2 条评论 ---
素数筛选法
谢谢呦,我查查看。
楼主骗代码来得
--- 共有 1 条评论 ---
其实,我就是想让大家帮帮忙,汇集一下大家的意见,真没骗啊!

我要回帖

更多关于 用c语言编写判断素数 的文章

 

随机推荐