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

首先给大家推荐一下我老师大神的人工智能教学网站。教学不仅零基础,通俗易懂,而且非常风趣幽默,还时不时有内涵黄段子!点这里可以跳转到网站

用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;
}
这里写图片描述

如何将下列流程图写成代码?

点这里可以跳转到人工智能网站