题目:
方法一:在2到n-1之间任取一个数,如果n能被整除则不是素数,否则就是素数
代码示例如下:
#include <stdio.h>
int main()
{
int i,n;
printf("Please input: ");
scanf("%d",&n);
for(i=2;i<=n-1;i++)
{
if(n%i==0){
break;
}
}
if(i>=n)
{
printf("This is a prime!\n");
}
else
{
printf("This is not a prime!\n");
}
return 0;
}
代码运行结果如下:
方法二:在2到n/2之间任取一个数,如果n能被整除则不是素数,否则就是素数
代码示例如下:
#include<stdio.h>
int main()
{
int n,i;
printf("Please input numbers: ");
scanf("%d",&n);
for(i=2;i<=n/2;i++)
{
if(n%i==0)
{
printf("This is not a prime!\n");
break;
}
}
if(i==n/2+1)
{
printf("This is a prime!\n");
}
return 0;
}
代码运行结果如下:
方法三:在2到sqrt(n)之间任取一个数,如果n能被整除则不是素数,否则就是素数
#include<stdio.h>
#include <math.h>
int main()
{
int i,j,n;
printf("Please input numbers: ");
scanf("%d",&n);
j=(int)sqrt(n);
for(i=2;i<=j;i++)
{
if(n%i==0)
{
break;
}
}
if(j<i)
{
printf("%d is prime!\n",n);
}
else
{
printf("%d is not prime!\n",n);
}
return 0;
}
代码运行结果如下:
方法四:质数分布的规律:大于等于5的质数一定和6的倍数相邻。例如5和7,11和13,17和19等
代码示例如下:
#include<stdio.h>
#include<math.h>
bool isPrime_3(int num)
{
if (num == 2 || num == 3)//两个较小数另外处理
return true;
if (num % 6 != 1 && num % 6 != 5) //不在6的倍数两侧的一定不是质数
return false;
}
int main()
{
int i,num;
for (i = 2; i <= sqrt(num); i += 6) //在6的倍数两侧的也可能不是质数
{
if (num % i == 0 || num % (i + 2) == 0)
return false;
}
//排除所有,剩余的是质数
return true;
}
编者注:以上对本小题的代码编写的多种方法,欢迎大家收藏借鉴并转发;
以上代码仅供参考,如有问题欢迎大家在留言区批评指正;
版权所有,翻印必究,如有雷同纯属巧合,转载请注明出处。
By CRH380AJ2808 2022.04.27
————————————————
版权声明:本文为CSDN博主「CRH380AJ2808」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/JH13thpig/article/details/124434094
今天的文章c语言判断素数程序代码_判断质数的公式「建议收藏」分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/75661.html