C练习——判断素数

发布时间 2023-12-20 17:24:24作者: 王小龙s

定义:

大于1;

只有一和它本身两个因数。

逻辑1:该数x   对2到x-1,取余,结果不为0则是素数

#include <stdio.h>
//逻辑1:该数x 对2到x-1,取余,结果不为0则是素数
int is_prime(int x)
{
    int i = 0;
    for (i = 2; i < x; i++)
    {
        if (x % i == 0)
            return -1;
    }
    return 1;
}

// 输出100以内的素数

int main()
{
    int num = 100;
    int j = 1;
    int count = 0;
    for (j = 2; j <= num; j++)
    {
        if (is_prime(j) == 1)
        {
            count++;
            printf("%d  ", j);

        }
    }
    printf("共%d个\n", count);
    return 0;
}

 

 

 

 

逻辑2(优化):所有非素数x都能被x的平方根整除 

//逻辑2(优化):非素数x能被x平方根整除
#include <math.h>
int is_prime(int x)
{
    int i = 0;
    for (i = 2; i <= sqrt(x); i++)
    {
        if (x % i == 0)
            return -1;
    }
    return 1;
}

// 输出100以内的素数
int main()
{
    int num = 100;
    int j = 1;
    int count = 0;
    for (j = 2; j <= num; j++)
    {
        if (is_prime(j) == 1)
        {
            count++;
            printf("%d  ", j);

        }
    }
    printf("共%d个\n", count);
    return 0;
}