素数判断

terminal中,vim isPrime.c,在vim中输入下面的代码。

/* 判断一个正整数是否为素数(prime number) */

#include <stdio.h>
#include <math.h>

int main()
{
    int number;
    int i;
    printf("输入你要判断的整数:");
    scanf("%d", &number);
    for (i = 2; i <= (int) sqrt(number); i++) {
        if (number % i == 0)
            break;
    }

    if (i > (int) sqrt(number) && number != 1)
        printf("%d is prime number.\n", number);
    else
        printf("%d is not prime number.\n", number);

    return 0;
}

保存退出,编译执行:

gcc isPrime.c -lm && ./a.out

 

 

提供一个备用方法:(大致思路还是一样的)

/* 判断一个正整数是否为素数 */

#include <stdio.h>
#include <math.h>

int main()
{
    int number;
    int n = 0;
    printf("输入大于0的整数:");
    scanf("%d", &number);
    for (int i = 2; i <= (int) sqrt(number); i++) {
        if (number % i == 0) {
            n++; //统计2  ~ (int) sqrt(number)中能把number整除的数的个数
        }
    }

    if (n == 0 && number != 1) //如果n为零且输入的数不是1的话,那么输入的数就是素数了。
        printf("%d is prime number\n", number);
    else
        printf("%d is not prime number\n", number);
}

 

posted @ 2020-04-26 20:02  profesor  阅读(173)  评论(0编辑  收藏  举报