素数:指的是“大于1的整数中,只能被1和这个数本身整除的数。
算法思想:
1.设n为一个大于1的整数。
2.在2-n之间任取一个整数,都不能被n整除,则判断n是素数。
为什么判定一个素数只要判断此数n能否被2~根号n整除?
证明如下:
假设n为合数,则可以n=a*b;而n= n*
n。则a,b中必有一个数小于等于
n,一个数大于
n。也就是n中有大于
n的数存在,必定有一个小于
n的数与之对应。
代码如下:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int n;
printf("请输入要判断的数:\n");
(void)scanf("%d", &n);
for (int i = 2;i <= sqrt(n); i++) //将n除以2到根号n内的所有整数
{
if (n % i == 0) //判断n能否被i整除。若能则不为素数
{
printf("%d不是素数!",n);
return 0; //return 0;直接结束程序,不会再往下操作
}
}
printf("%d是素数\n", n);
return 0;
}
以上代码仅供参考,如有问题欢迎大家在评论区指正。
,