判断一个数是否为素数

Posted banxia20191109

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了判断一个数是否为素数相关的知识,希望对你有一定的参考价值。

问题:输入一个大于3的整数n,判断它是否为素数(prime,又称质数)。

思路一

采用的算法是,让n被i除(i的值从2变到n-1),如果能被2~(n-1)之中的任何一个整数整除,则表示n肯定不是素数,不必再继续被后面的整数除,因此,可以提前结束循环。注意:此时i的值必然小于n。
代码如下:

#include<stdio.h>
int main()
{
    int n, i;
    printf("please enter a integer number, n=?");
    scanf("%d", &n);
    for(i=2; i<=n-1; i++)
        if(n%i == 0)break;
    if(i<n) printf("%d is not a prime number.\n", n);
    else printf("%d is a prime number.\n", n);
    return 0;
}

思路二

其实n不必被2~(n-1)范围内的各整数去除,只须将n被2~n/2间的整数除即可,甚至只须被2~sqrt(n)之间的整数除即可。
代码如下:

#include<stdio.h>
#include<math.h>
int main()
{
    int n, i, k;
    printf("please enter a integer number:n=?");
    scanf("%d", &n);
    k = sqrt(n);
    for(i=2; i<=k; i++)
        if(n%i == 0)break;
    if(i <= k)printf("%d is not a prime number.\n", n);
    else printf("%d is a prime number.\n", n);
    return 0;
}

注:有问题,欢迎指正。

以上是关于判断一个数是否为素数的主要内容,如果未能解决你的问题,请参考以下文章

50~100之间的素数,判断是不是为素数用函数完成

求C语言中 判断素数的 代码!!!!!

判断一个数是否为素数

模板:判断一个数是否是素数

c语言如何判断素数?

判断一个数是否为素数