C语言:判断一个数字是否是素数的方法
分析:只能被 1和它本身整除的整数称为素数。在数学中,要判断n是否为素数,通常让n除以2~的每一个整数,如果, 能被 2~的某个整数整除,则说明,不是素数,否则n一定是素数
方法一:用for语句判断n是否为整数
#include"math.h"
#include"stdio.h"
main()
{
int n,m,i,flag=0;
printf("n输人整数n=");
scanf("%d",&n);
m=sqrt(n);
for(i=2;i<=m;i++)
if(n%i==0)
{
flag=1;
break;
}
if(flag)
printf("n%d不是素数.n",n);
else
printf("n%d是素数.n",n);
}
方法二 :编写一个判断函数,再在主函数里调用;
#include <stdio.h>
#include<math.h>
int is_prime(int num)
{
int i;
if (num<= 1) {
return 0;
}
for(i=2;i<=sqrt(num);i++)
{
if (num%i==0)
{
return 0;
}
}
return 1;
}
int main() {
int num;
printf("请输入一个整数:");
scanf("%d", &num);
if (is_prime(num))
{
printf("%d是素数。n", num);
}
else
{
printf("%d不是素数。n", num);
}
return 0;
}
在这个代码中,我们首先定义了一个名为 `is_prime` 的函数,它接受一个整数作为参数。函数首先检查输入的整数是否小于等于1,如果是,则直接返回0,因为小于等于1的数不是素数。接下来,我们使用一个循环来从2开始遍历到输入整数的平方根,并检查输入的整数是否能被其中任何一个数整除。如果可以,返回0,表示该整数不是素数;否则,返回1,表示该整数是素数。
在 `main` 函数中,我们首先提示用户输入一个整数,然后调用 `is_prime` 函数来判断输入的整数是否为素数。如果是素数,输出 "%d是素数。";否则,输出 "%d不是素数。"。最后,返回0表示程序结束。