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

来源:互联网 发布:java程序设计第二版 编辑:程序博客网 时间:2024/05/10 14:33

用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;}

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