如何判断一个数是否为素数(质数)?

用For语句实现循环

  • 基本思路:若一个数n能被2和√n之间的数整除(取余为0),则可判断n为素数。可从2开始测试,一直到√n为止。
  • For语句语法规则
    一般形式:
    for(表达式1;表达式2;表达式3) 语句
    for(循环变量赋初值;循环条件;循环变量增值) 语句

这里写图片描述

  • 实现过程:从i=2开始测试,判断循环条件(i<=q),若成立则进入第一个if语句,判断n对i取余是否为0。若为0,直接跳出for循环体,进入for语句的下一语句,即第二个if语句;若不成立,执行表达式3(i++),再次进入for循环,直到 i>q后,跳出for循环,进入第二个if语句。若 i<=q,说明在测试到√n之前已经有一个 数能被n整除,即n不是素数。若 i>q,说明从2测试到√n都没有一个数能被n整除,直到测试到大于√n才因为不满足for循环条件跳出,即n是素数。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
    int n,i,q;

    while(scanf("%d",&n)!=EOF)
    {q=(int)sqrt(n);               //注意函数调用的格式
    for(i=2;i<=q;i++)
        if(n%i==0)
            break;
        if(i<=q)
            printf("No\n");
        else
            printf("Yes\n");
    }
    return 0;
}

如何将下列流程图写成代码?
这里写图片描述

  • 11
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值