用C语言编写判断一个数是否是素数的程序

 我来答
机器1718
2022-07-12 · TA获得超过6491个赞
知道小有建树答主
回答量:2805
采纳率:99%
帮助的人:136万
展开全部

工具/材料

ubuntu,vim,gcc

  • 01

    打开ubuntu并开启一个终端,输入命令vim is_prime.c,打开编辑页面,输入预处理指令#include<stdio.h>用于在主函数中调用判断函数。然后定义一个函数int is_prime(int n),即判断整数n是否为素数。

  • 02

    首先,判断这个数是否小于2.若是,则直接返回0,即表示它不是一个素数。

  • 03

    然后定义中间的因数i,初始值为2。依次使n对i取余数,看n能否整除i,然后令i自增直到i的平方大于n。在这过程中,如果遇到n能整除i,则说明n不是一个素数。如果循环能够直到i的平方大于n才结束,说明n是一个素数。

  • 04

    接下来,我们使用主函数进行测试,使用printf("%d : %d\n", n, is_prime(n))的格式进行输出。如果输出结果为0,说明不为素数;结果为1,说明是一个素数。
    测试的数据依次是2,4,9,15, 17, 23, 25。

  • 05

    退出编辑器vim,然后使用gcc编译并运行它,得到结果。通过结果我们可以看出,预期的结果与我们对于素数的认知是相同的,说明我们的程序编写没有错误。以下是所有的源代码:
    #include <stdio.h>

    //判断一个数是否为素数的函数定义
    int is_prime(int n)
    {
    //判断n是否小于2.若小于则直接返回0
    //表示n不是一个素数
    if(n < 2)
    return 0;
    //定义一个中间变量i,初始化i=2
    int i = 2;
    //依次判断每一个不大于根号n的i是否能被n整除
    for(i = 2; i * i <= n;i++)
    {
    //如果能够整除
    if(n % i == 0)
    //直接返回0,表示n不是一个素数
    return 0;
    }
    //如果程序运行到这里,说明i*i大于n
    //说明n是一个素数
    return 1;
    }

    int main()
    {
    printf("%d : %d\n", 2, is_prime(2));
    printf("%d : %d\n", 4, is_prime(4));
    printf("%d : %d\n", 9, is_prime(9));
    printf("%d : %d\n", 15, is_prime(15));
    printf("%d : %d\n", 17, is_prime(17));
    printf("%d : %d\n", 23, is_prime(23));
    printf("%d : %d\n", 25, is_prime(25));
    return 0;
    }

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式