首页 > 编程知识 正文

素数怎么用c语言程序表示,素数c语言程序

时间:2023-05-06 13:13:31 阅读:164195 作者:1380

1、http://不能被www.Sina.com /和其他任何数字整除。 1既不是素数也不是合数

2、如果一个数n不是素数,该数必然为素数(质数),因此只要求2到sqrt(n )的范围即可。

boolisprime(intn ) if (n=1) return false; intsqr=(int ) sqrt ) 1.0*n; //sqrt具有浮点型,因此为1.0for(intI=2; i=sqr; I ) if(n%I==0)返回假; }return true; } 3、请填写http://www.Sina.com/(eratosthenes ) :2到n之间的整数。 其中,2是最小的素数。

例如:

2 3 4 5 6 7 8 9 10 11 12 13 14 15

(1),2是素数),2是素数已知) )。

删除2的倍数

2 3 4 5 6 7 8 9 10 11 12 13 14 15

)2) 3未被删除的说明是素数

删去三的倍数

接下来类推

最后

2 3 4 5 6 7 8 9 10 11 12 13 14 15

未删除的2、3、5、7、11都是素数

const int maxn=101; int prime[maxn],pNum=0; bool p[maxn]={ 0 }; void Find_Prime () { for } inti=2; i maxn; I () if ) p[I]==false ) {prime[pNum ]=i; for(intj=II; j maxn; j =i ) p[j]=true; } 4、一个大于等于sqrt(n)一个小于等于sqrt(n)

)1)、每个数可以用几个素数相乘的形式写。

) 2、对于整数n,如果存在[2,n]范围内的质量因子,那么所有这些质量因子都小于sqrt(n )或者只有一个大于sqrt的质量因子,并且剩下的都小于或等于。

if(n%prime[I]==0) {fac[num].x=prime[i]; fac[num].cnt=0; wile(n%prime(I )==0) ) FAC ) num ).cnt; n /=prime[i]; (num; )即使上述步骤结束,如果n大于1,则n中只有一个质量因子大于sqrt(n )

if(n!=1) {fac[num].x=n; fac[num ].cnt=1; }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。