Compare commits

...

1 Commits

Author SHA1 Message Date
pbjgvwc2r 3ebe0cab75 Add 素数
4 years ago

@ -0,0 +1,53 @@
//素数
//方法1
#include<stdio.h>
int main()
{
int n,i;
scanf("%d",&n);
for(i=2;i<=n-1;i++)
if(n%i==0) break;
if(i==n) printf("%d是素数",n);
else printf("%d不是素数",n);
return 0;
}
//方法2
#include<stdio.h>
#include<math.h>
int main()
{
int n,i;
scanf("%d",&n);
for(i=2;i<=sqrt(n);i++)
if(n%i==0) break;
if(i>sqrt(n)) printf("%d是素数",n);
else printf("%d不是素数",n);
return 0;
}
//方法3
#include<stdio.h>
bool isPrime_3( int num )
{
//两个较小数另外处理
if(num ==2|| num==3 )
return 1 ;
//不在6的倍数两侧的一定不是质数
if(num %6!= 1&&num %6!= 5)
return 0 ;
int tmp =sqrt( num);
//在6的倍数两侧的也可能不是质数
for(int i= 5;i <=tmp; i+=6 )
if(num %i== 0||num %(i+ 2)==0 )
return 0 ;
//排除所有,剩余的是质数
return 1 ;
}
int main()
{
int n,i;
scanf("%d",&n);
i=isPrime_3(n);
if(i==1) printf("%d是素数",n);
else printf("%d不是素数",n);
return 0;
}
Loading…
Cancel
Save