Bootstrap

C语言:判断一个数字是否是素数的方法

 分析:只能被 1和它本身整除的整数称为素数。在数学中,要判断n是否为素数,通常让n除以2~\sqrt{n}的每一个整数,如果, 能被 2~\sqrt{n}的某个整数整除,则说明,不是素数,否则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表示程序结束。
 

;