我这个判断素数的程序哪错了,麻烦帮帮我,另外break只能在switch语句中吗,初学c语言求素数,很多不懂

我是刚学C的菜鸟 问个关于求素数的问题,请大家帮帮忙_c语言吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:243,538贴子:
我是刚学C的菜鸟 问个关于求素数的问题,请大家帮帮忙收藏
求100-1000素数#include&stdio.h& main() { int a,i;for(a=100;a&=1000;a++){ &&& for(i=2;i&=a/2;i++)&&& if(a%i==0)if(i&a/2)&&& printf("%d ",a);&& }} 问问&& for(i=2;i&=a/2;i++)&&& if(a%i==0)if(i&a/2)是怎么回事,帮我讲讲啊~
#include&stdio.h& main() { int a,i,k=0;for(a=100;a&=1000;a++)&&&& { &&&&&&&& for(i=2;i&=a/2;i++)&&&&&&&&&&&&&&&&&&&&& if(a%i==0)//当a一直由2被除到a/2如果整除则终止这个循环,继续执行上一层循环。&&&&&&&&&&&& if(i&a/2)&&&&&&& //如果一直没除尽则肯定i&a/2,即a为素数。&&&&&&&&&&&& {&&&&&&&&&&&&&&&& printf("%10d",a);&&&&&&&&&&&&&&&& k++;&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&& if(k%5==0)&&&&&&&&&&&
//控制每行输出5个数。&&&&&&&&&&&&&&&& printf("\n");&&&&&&&&&&&& }&&&&&&&&&&& }} 还有一种方案,更节省时间:(因为当被a除到根号a还不能除尽就可以判定他是素数了,没必要到a/2。)#include&stdio.h& #include&math.h&main() { int a,i,k=0;for(a=100;a&=1000;a++)&&&& { &&&&&&&& for(i=2;i&=sqrt(a);i++)&&&&&&&&&&&& if(a%i==0)&&&&&&&&&&&& if(i&sqrt(a))&&&&&&&&&&&& {&&&&&&&&&&&&&&&& printf("%10d",a);&&&&&&&&&&&&&&&& k++;&&&&&&&&&&&&&&&&&&&& if(k%5==0)&&&&&&&&&&&&&&&& printf("\n");&&&&&&&&&&&& }&&&&&&&&&&& }}
还有接着这题 如何输出10个最大和10个最小的素数啊
登录百度帐号我的游戏推荐游戏
后查看最近玩过的游戏
使用签名档&&
为兴趣而生,贴吧更懂你。或求助:用c语言编译一个打印100以内的素数,我是新手,帮我看看我的_c语言吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:243,538贴子:
求助:用c语言编译一个打印100以内的素数,我是新手,帮我看看我的收藏
快试试吧,可以对自己使用挽尊卡咯~◆◆
素数是只能被1和它本身整除的数,书上说的可以用数学方法证明:只需2到sqrt(i)之间的数去除i,就可以得到正确的判断结果,我用这个方法写出下面的程序
#include&&stdio.h&
#include&&math.h&
void&main()
{ int&i,j,k;
scanf(&%d&,&i);
k=sqrt(i);
for(j=2;j&=k;j++)
if(i%2==0)&
printf(&素数=%d\n&,i);
printf(&和数=%d\n&,i);
}
/*{int&i,j,k;&
for(i=1;i&=100;i++)
k=sqrt(i);
for(j=2;j&=k;j++)
&&&&if(i%k==0)&&
printf(&%d\t&,i);
}
}*/
上面的程序是判断一个数是不是素数,下面是打印100以内的素数。运行上面的程序出现了一个问题:如果输入21,会判断21是一个素数,事实上21不是素数。下面的就更有问题了!有没有谁帮帮忙,帮我重新想一个算法?谢谢
登录百度帐号我的游戏推荐游戏
后查看最近玩过的游戏
使用签名档&&
为兴趣而生,贴吧更懂你。或等 级:论坛游民
专家分:12
别的没看,首先你的judge函数返回值有问题,返回你judge函数的局部变量是得不到预期值的。
等 级:业余侠客
帖 子:215
专家分:267
#include &stdio.h&
#include &math.h&
int judge(int n)
&&& int i,f=1;
&&& for(i=2;i&=sqrt(1.0*n);i++)
&&&&&&&&if(n%i==0)
&&&&&&&&&&&&f=0;
&&& return (f);
int main()
&&& int n,m;
&&& scanf(&%d&,&m);
&&& while(m--)
&&&&&&&&scanf(&%d&,&n);
&&&&&&&&printf(&%d\n&,judge(n));
大于1的数,你可以试一下看看judge函数的返回值是否可以预期,我试过了,如果输入的数是素数输出是1,否则输出的是0.
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
题目网址发来
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
===========深入&-----------------&浅出============
等 级:业余侠客
帖 子:215
专家分:267
http://acm.nyist.net/JudgeOnline/problem.php?pid=26
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
1000000个数先筛一下&&然后遍历一次就行了&&先去吃饭了&&下午给你写
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
===========深入&-----------------&浅出============
等 级:业余侠客
帖 子:215
专家分:267
我就是这么做的,不知道怎么回事就是过不了。
来 自:/\/\/\/\/
等 级:论坛游侠
帖 子:130
专家分:186
我这就找不到这数,到底孪生素数是什么说明白点
等 级:业余侠客
帖 子:215
专家分:267
距离为二的素数,但是这一题加了一个距离为一的素数。
等 级:版主
威 望:75
帖 子:2999
专家分:11589
距离为一的素数对只有2和3。
你的分析有点意思,但你漏了6以前的素数。2、3是素数对,3、5是素数对。
哈哈,这题很简单,就不给代码了。公布一下我的AC成绩。用时20毫秒, 代码长342字节,消耗内存3156KB。
这两天太忙了,过两天有时间我打算把你们学校的题全刷一遍。
重剑无锋,大巧不工
版权所有,并保留所有权利。
Powered by , Processed in 0.024943 second(s), 7 queries.
Copyright&, BCCN.NET, All Rights Reserved1000以内所有素数之和 C语言程序,请高手帮我编写下,谢谢啊!_百度知道
1000以内所有素数之和 C语言程序,请高手帮我编写下,谢谢啊!
#include&stdio.h& void main() { int a,i;long int sum=0;for(a=2;a&=1000;a++){
for(i=2;i&=a/2;i++)
if(a%i==0)
sum=sum+a;} printf(&%ld&,sum);getch(); }
其他类似问题
素数的相关知识
其他3条回答
我的最简单#include &stdio.h&main(){
printf(&76127 &);}
#include&stdio.h&#include&math.h&void main(){ int i,j; long int sum=0; for(i=2;i&=1000;i++) { for(j=2;j&=sqrt(i);j++) if(i%j==0) if(j&sqrt(i)) sum+=i; } printf(&%ld\n&,sum); getch(); }用到了根号
main(){int i=2,j=2,sum=0,n; for(i=2;i&=1000;i++) {n=1; for(j=2;j&i;j++) if(i%j==0) n=0; if(n) sum+=i;
}printf(&%4d\n&,sum);}
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁请大家帮个忙!谢谢了,“给定整数,判断是否为素数”用C语言怎么编程啊~_百度知道
请大家帮个忙!谢谢了,“给定整数,判断是否为素数”用C语言怎么编程啊~
提问者采纳
%d is not a prime number&良肛翅何俨蛊氟曝#92:筛选法步骤(假设求100以内全部素数);:让m先后被2到sqrt(m)除,a[i]);i++)
if(m%i==0)break,因此跳过6;,如果m能被2~sqrt(m)之间的任何一个整数整除;
for(i=2;n&100以内的素数如下&#92,把5的倍数全部置为0,因此m是素数。例题见《C语言程序设计》-谭浩强
P152 课后习题7;%d &quot。例题见《C语言程序设计》-谭浩强
例题6;n&quot,希望对你有帮助;void main(){
int m:#include &j&lt,4在第一轮中已被置0,我以前写的判断素数的两种基本办法;=100,最后所有未被置0的数字即为素数,若是;=100;,i;i&lt.:判断m是否是素数;
if(i&gt,把100以内3的倍数全部置为0;
getch();),&m);n&i&lt.8程序如下:普通法,因此跳过4.如此重复执行,6在前面的筛选中已经被置为0!=0)
for(j=i+1;i&lt,因此i=k+1.;=100;printf(&quot,则提前结束循环;#include&
else printf(&j++)
if(a[j]%a[i]==0)
k=sqrt(m):把100以内2的倍数全部置为0.h&i++)
if(a[i],i,此时i必然小于或者等于sqrt(m);k)printf(&quot.h&i&lt,k;
for(i=2;i++)
a[i]=i,如果m不能被2~sqr(m)之间的任一整数整除,那么在完成最后一次循环时;=100;for(i=0;=k,i还要再加1。再循环之后判别i的值是否大雨或等于k+1:筛选法;stdio,j,m);void main(){
int a[101],则表明未曾被2~sqrt(m)之间任一整数整除过;stdio,然后才终止循环,再把100以内7的倍数全部置为0..1程序如下:#include&lt..h&math.;}②;
scanf(&quot,m);;%d&%d is a prime number\for(i=2:①;i++)
if(a[i],算法如下!=0)
printf(&quot
其他类似问题
按默认排序
其他2条回答
if(i &%d 不是素数;,判断是否为素数//n&quot!&#92, n);******************************************************************************#include&#include&%d& sqrt(n)) 花挝丰嘉莶黄机蓉
printf(&quot&#47.h&******************************************************************************/Ctrl + Z
for(i = 2.h&/给定整数;;
while(scanf(&;%d 是素数, &n) !&#92!= EOF)
if(n % i == 0)
break, n);= sqrt(n);n&quot,
printf(& i &/int main(){
&stdio.h& void main(){
int flag = 1;
scanf(&%d&, &d);
for (i = 2; i * i &= i++)
if (d % i == 0)
printf(&素数\n&);
else printf(&不是素数\n&);}
素数的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 判断素数 的文章

 

随机推荐