一个跟素数有关的c语言求素数题

共有 3037 人关注过本帖
标题:关于一个求N个数之内所有素数的问题
来 自:廊坊
等 级:论坛游民
帖 子:26
专家分:52
结帖率:100%
&&问题点数:0&&回复次数:11&&&
关于一个求N个数之内所有素数的问题
RT,自己写的代码,然后调试,修改,实在想不出来哪里出错了,输出的结果不正确,在这里请教各位大大,小弟水平有限,勿喷。
下面是代码:
#include&stdio.h&
#include&math.h&
int sushu()
&&& int num=100,mod,i,j;&&& /*i控制外循环,j控制内循环*/
&&& for(i=2;i&=i++)&&&&&&&&/*最外层循环,从2开始,到所定义的num为止*/
&&&&&&&&mod=sqrt(i);&&&&&&&&/*对将要判断的数作开平方运算,减少判断次数*/
&&&&&&&&if(i==2)
&&&&&&&&&&&&printf(&&&%d&&&,i);
&&&&&&&&for(j=2;j&=j++)&&& /*循环,次数为mod+1-2=mod-1*/
&&&&&&&&&&&&if(i%j!=0)
&&&&&&&&&&&&{
&&&&&&&&&&&&&&& printf(&&&%d&&&,i);
&&&&&&&&&&&&&&&&&&&&&&&/*跳出循环体*/
&&&&&&&&&&&&}
&&& printf(&\n&);
&&& getch();
int main()
&&& sushu();
搜索更多相关主题的帖子:
来 自:廊坊
等 级:论坛游民
帖 子:26
专家分:52
自己先坐个沙发,在这里坐等高手解答
等 级:新手上路
&&&&&&&&&for(j=2;j&=j++)&&& /*循环,次数为mod+1-2=mod-1*/
&&&&&&&&&&&&if(i%j!=0)
&&&&&&&&&&&&{
&&&&&&&&&&&&&&& printf(&&&%d&&&,i);
&&&&&&&&&&&&&&&&&&&&&&&/*跳出循环体*/
&&&&&&&&&&&&}
这里不太对,j在这里从2开始试起,不能一不整除就输出。打个比方,如果是25,j=2时25%2!=0,输出25.错了。
等 级:论坛游侠
帖 子:26
专家分:181
我感觉是逻辑错误,我看了看,没有看明白。
这里有一个别人写的,你参考一下吧!
int i,j,n=100;
&&& int num=0;
&&& for(i=2;i&=n;i++)
&&&&&&&&for(j=2;j&=i-1;j++)
&&&&&&&&&&&&if(i%j==0)
&&&&&&&&&&&&&&&
&&&&&&&&if(j&=i)
&&&&&&&&&&&&printf(&%d\t&,i);
&&&&&&&&&&&&num++;
&&&&&&&&if(num%10==0)
&&&&&&&&&&&&printf(&\n&);
等 级:论坛游民
专家分:27
#include&stdio.h&
#include&math.h&
void sushu()
&&& int num=100,mod,i,j,count=0;&&&
&&& for(i=2;i&=i++)&&&&&&&&
&&&&&&&&mod=(int)sqrt(i);&&&&&&&&
&&&&&&&&&&&&for(j=2;j&=j++)&&&
&&&&&&&&&&&&&&if(i%j==0)
&&&&&&&&&&&&&&&&&count++;
&&&&&&&&if(count==0)
&&&&&&&&&&&&printf(&&&%d&,i);
&&&&&&&&count=0;
&&& printf(&\n&);
&&& getch();
int main()
&&& sushu();
&&& return 0;
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
===========深入&-----------------&浅出============
等 级:新手上路
#include&stdio.h&
int i,j,n=100;
&&&&&int num=0;
&&&&&for(i=2;i&=n;i++)
&&&&&&&&&for(j=2;j&=i-1;j++)
&&&&&&&&&{
&&&&&&&&&&&& if(i%j==0)
&&&&&&&&&&&&&&&&&
&&&&&&&&&else printf(&%d&,i);
&&&&&&&&&}
j的初始值也可以是3 然后j=j+2&&因为素数不是偶数
来 自:廊坊
等 级:论坛游民
帖 子:26
专家分:52
谢谢各位了,这几天有些忙,没有顾得上上论坛,谢谢了
等 级:论坛游民
帖 子:18
专家分:24
回复 3楼 黑色流星
上面还有个for的循环嘛, 那个也有用的&&&就像你说的25&&&它除以2是不等于0&&但他有上面的for语句&&他会继续执行直到for语句结束&&& 最后才输出
等 级:论坛游民
帖 子:18
专家分:24
回复 楼主 lastrobber
for(j=2;j&=j++)&&& /*循环,次数为mod+1-2=mod-1*/
我是不知道 出错在哪了&&但我看书的好像要&&&&&j&mod&&&我也不知道为什么
版权所有,并保留所有权利。
Powered by , Processed in 0.023402 second(s), 9 queries.
Copyright&, BCCN.NET, All Rights Reserved用c语言,回答下面任何一个问题:(非诚勿扰) //费马数列举 //检验某个费马数是否素数 //检验用c语言,回答下面任何一个问题:(非诚勿扰)//费马数列举//检验某个费马数是否素数//检验某个_百度作业帮
用c语言,回答下面任何一个问题:(非诚勿扰) //费马数列举 //检验某个费马数是否素数 //检验用c语言,回答下面任何一个问题:(非诚勿扰)//费马数列举//检验某个费马数是否素数//检验某个
用c语言,回答下面任何一个问题:(非诚勿扰) //费马数列举 //检验某个费马数是否素数 //检验用c语言,回答下面任何一个问题:(非诚勿扰)//费马数列举//检验某个费马数是否素数//检验某个大数是否素数//寻找长度为n的素数等差数列//计算大数的位数//自动生成任意大小的幻方//画圆形图案//检验华林问题//把239分解为9个立方数的和//等幂和问题(寻找)//画杨辉三角//计算lgx(x手动输入)//计算开方数//求次方根//求一个大数的23次方//怎么写二重迭代//怎么求极限//怎么求无穷次迭代的结果//给定数字n,求x2≡x(mod10∧n)的最小x//给定一组数字数据,找出其中相等的
#include&iostream&#include&iomanip&using&namespace&int&main(){&&&&int&p[100][100];&&&&int&i,j,k;&&&&for(i=1;i&5;i++)&&&&{&&&&&&&&p[i][0]=0;&&&&&&&&p[i][i+1]=0;&&&&}&&&&p[1][1]=1;&&&&&for(i=2;i&=5;i++)&&&&{&&&&&&&&&&k=1;&&&&&&&&for(j=i;k&=j;k++)&&&&&&&&{&&&&&&&&&&&&&&p[i][k]=p[i-1][k-1]+p[i-1][k];&&&&&&&&}&&&&&}&&&&&&&&for(i=1;i&=5;i++)&&&&{&&&&&&&&k=1;&&&&&&&&for(;k&=i;k++){&&&&&&&&&&&&if(k==1)cout&&setw(7-i)&&p[i][k];&&&&&&&&&&&&if(k!=1)cout&&setw(2)&&p[i][k];&&&&&&&&&&&&if(k%i==0)cout&&&&&&&&&&}&&&&}&&&&getchar();&&&&return&0;}c语言中判断有多少个素数问题_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
c语言中判断有多少个素数问题
上传于||暂无简介
阅读已结束,如果下载本文需要使用
想免费下载本文?
你可能喜欢共有 4003 人关注过本帖
标题:如何实现将任意一个整数分解为素数之积
等 级:侠之大者
帖 子:216
专家分:408
结帖率:100%
&&已结贴√
&&问题点数:20&&回复次数:12&&&
如何实现将任意一个整数分解为素数之积
最近学算术基本定理,想用C程序实现它,即输入任意正整数(&1),将该整数分解为素数之积,例如10=2*5,12=2*2*3,18=2*3*3,按类似格式输出结果。。想了很久没能做到完全分解,希望高手能给予指导,一起讨论,不甚感激。。。。
搜索更多相关主题的帖子:
等 级:贵宾
威 望:96
帖 子:3150
专家分:12172
&&得分:10&
因数分解好像到现在也没有很好的算法,也许我才疏学浅,有知道的还请不吝赐教。
写一段代码抛砖引玉吧。没有使用筛法求素数是不想消耗太多的内存程序代码:#include&stdio.h&
#define SIZE&&& 10000
int prime[SIZE];
void init()
&&& int i, a,
&&& prime[<font color=#] = <font color=#;
&&& for(n = <font color=#, a = <font color=#; n & SIZE; a += <font color=#)
&&&&&&&&for(i = <font color=#; i & i++)
&&&&&&&&&&&&if(a % prime[i] == <font color=#) break;
&&&&&&&&if(i == n) prime[n++] =
void print(int a)
&&& printf(&%d = &, a);
&&& for(i = <font color=#; i & SIZE && a % prime[i]; i++);
&&& if(i == SIZE)
&&&&&&&&printf(&over flow.\n&);
&&&&&&&&return;
&&& printf(&%d&, prime[i]);
&&& for(a /= prime[i]; a & <font color=# && i & SIZE; i++)
&&&&&&&&for(; a % prime[i] == <font color=#; a /= prime[i])
&&&&&&&&&&&&printf(& * %d&, prime[i]);
&&& printf(&\n&);
&&& if(a & <font color=#) printf(&over flow.\n&);
int main()
&&& init();
&&& printf(&input number : &);
&&& scanf(&%d&, &a);
&&& print(a);
&&& return <font color=#;
重剑无锋,大巧不工
等 级:蒙面侠
帖 子:1047
专家分:4132
最基础的往往是你最容易忽略的!
等 级:青峰侠
帖 子:482
专家分:1599
程序代码:#include&stdio.h&
int main()
&&& int n=<font color=#,i,t=<font color=#,s=<font color=#,
&&& int sushu(int m);
&&& printf(&Input a number(&1):&);
&&& scanf(&%d&,&n);
&&& printf(&%d=&,n);
&&& temp=n;
&&& if(sushu(n)==<font color=#)
&&&&&&&&printf(&%d&,n);
&&&&&&&&do
&&&&&&&&&&&&for(i=<font color=#;i&=temp/<font color=#;i++)
&&&&&&&&&&&&{
&&&&&&&&&&&&&&& if(sushu(i)==<font color=#&&temp%i==<font color=#)
&&&&&&&&&&&&&&& {
&&&&&&&&&&&&&&&&&&&&if(t==<font color=#)
&&&&&&&&&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&&&&&&&&&printf(&%d&,i);
&&&&&&&&&&&&&&&&&&&&&&&&t=<font color=#;
&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&&else
&&&&&&&&&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&&&&&&&&&printf(&*%d&,i);
&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&&s*=i;
&&&&&&&&&&&&&&&&&&&&temp=temp/i;
&&&&&&&&&&&&&&&&&&&&if(sushu(temp)==<font color=#)
&&&&&&&&&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&&&&&&&&&printf(&*%d&,temp);
&&&&&&&&&&&&&&&&&&&&&&&&s*=
&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&&break;
&&&&&&&&&&&&&&& }
&&&&&&&&&&&&}
&&&&&&&&}while(n&s);
&&& printf(&\n&);
&&& return <font color=#;
int sushu(int m)//验证是否为素数
&&& int i=<font color=#,flag=<font color=#;
&&& for(;i&=m/<font color=#;i++)//查找到二分之一时就可以结束了
&&&&&&&&if(m%i==<font color=#)
&&&&&&&&&&&&flag=<font color=#;//不是素数,标示量设置为1
&&&&&&&&&&&&break;
&&& return//返回标示量,1表示是素数,0相反
等 级:青峰侠
帖 子:482
专家分:1599
回复 2楼 beyondyf
请问兄台你学习算法都看些什么书?
等 级:职业侠客
帖 子:163
专家分:364
手机码字不太方便,写下大致思路:
1.首先用一个变量t存储输入的值
2.接着从i = 2开始进行循环,先用函数isPrime()判断i是否是素数,是则继续下一步,不是则continue,i++;
3.接着判断i能否整除t,能则把i存到一个数组中去,同时t /= i, 然后把i的值重置为2;
4.t & 1时循环以上步骤
主要步骤就这些,中学信息竞赛的题里面好像有这道,当时我弟上课的时候我也去了,回去在电脑里面翻一翻没准可以翻出来==
何必等待?梦在今朝
等 级:论坛游民
帖 子:80
专家分:55
程序代码:#include&stdio.h&
int main()
&&& int i=<font color=#,sum,d;
&&& scanf(&%d&,&sum);
&&& printf(&%d=&,sum);
&&& while(i&sum){
&&&&&&&&if(sum%i!=<font color=#)
&&&&&&&&&&&&i=i+<font color=#;
&&&&&&&&if(sum%i==<font color=#){
&&&&&&&&&&&&sum=sum/i;
&&&&&&&&&&&&if(sum==<font color=#)break;
&&&&&&&&printf(&%d*&,i);
&&&&&&&&if(sum==i){
&&&&&&&&&&&&i-=<font color=#;
&&& if(sum==<font color=#)
&&&&&&&&d=sum*i;
&&& printf(&%d&,d);
&&& return <font color=#;
}我也想了一个,但是有限制,望指教
等 级:论坛游民
帖 子:80
专家分:55
如果上面的int 改为long long 更好一点
等 级:侠之大者
帖 子:216
专家分:408
回复 2楼 beyondyf
恕我愚钝,你的算法思路我确实没看明白,能否再加点解释。。。。不甚感激。。。
等 级:青峰侠
帖 子:482
专家分:1599
回复 7楼 tianqiao
膜拜。。。兄弟平时看些什么书?有关算法的。
版权所有,并保留所有权利。
Powered by , Processed in 0.032882 second(s), 9 queries.
Copyright&, BCCN.NET, All Rights Reserved}

我要回帖

更多关于 c语言统计素数的个数 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信