【C语言】判断素数

1、判断所输入的整数是否为素数
(除1以外只能被1和它本身整除的自然数)

#include <stdio.h>              //包含标准库的信息

int main(void)                  //每个程序都从main函数的起点开始执行
{
    int a;                //定义变量为整型

    printf("请输入一个整数:");
    scanf("%d",&a);
    if(a <= 1)
        printf("不是素数\n");
    else if(a == 2)
        printf("是素数\n");
    else
    {
        for (int i = 2; i <= a-1 ; ++i) {
            if (a%i == 0)   //若与任意个数的余数为0,则不是素数
            {
                printf("不是素数\n");
                return 0;
            }
        }
        printf("是素数\n");
    }
    return 0;
}

2、求100~200之间的全部素数

#include <stdio.h>              //包含标准库的信息
#include <math.h>               //<math.h> 头文件中声明了一些数学函数和宏
int main(void)                  //每个程序都从main函数的起点开始执行
{
    int n,k,i,m=0;
    for (n = 101; n <=200 ; n = n+2)    //偶数不是素数,所以只对奇数进行检查
    {
        k = sqrt(n);    //开根号,判断是否为素数,只须被2~√n之间的整数除即可
        for (i = 2; i <= k ; i++)
            if (n % i == 0)break;   //如果n能被i整除,终止内循环,此时i<k+1
        if(i >= k + 1)              //若i>=k+1,表示n未曾被整除
        {
            printf("%d ",n);        //n为素数
            m = m + 1;              //控制换行
        }
        if (m % 10 == 0) printf("\n");  //若m为10的倍数,换行
        }
    printf("\n");
    return 0;
}

运行结果
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_42294351/article/details/107058903