0
点赞
收藏
分享

微信扫一扫

如何解题 <打印100~200之间的素数> ——C语言

waaagh 2022-02-26 阅读 219
c语言

1.关于什么是素数:对于素数就是一个数能被1和自身整除,除此以外不能被任何数整除
比如:就拿13这个数来说,除了被1和自身13整除之外,就不能被任意数整除了
常见的素数比如:1,2,3,5,7,11,13,17…

2.解题思路:在这里我们所用的方法是:试除法(用大于2到小于或者等于这个数之间的数来与这个数取模,若取模之后余数为0就不是素数,若取模之后不为0,就打印这个数(为素数))

3.直接上手个代码看吧:

#define _CRT_SECURE_NO_WARNINGS 1
//打印100~200之间的素数
#include<stdio.h>
int main()
{
    int i = 0;//先定义一个i,为后的循环做准备
    for (i = 100; i <= 200; i++)//定义一个for循环
    {
        int j = 0;//定义一个用于与100-200之间的数相除
        for (j = 2; j <= i; j++)//用大于2,小于i的j取模
        {
            if (i % j == 0)//若i能被j整除就跳出循环
            {
                break;
            }
        }
      if (j>=i)//j一直找,直到找到大于i的数都没有找到整除的数,就是素数
        {
            printf("%d ", i);//把素数打印出来
        }  
    }
    return 0;
}

最后运行的结果是:

4.大家都知道偶数不可能是质数所以我们可以进一步的取修改我们的代码:本来是i++的,可以修改为i+2 :

#include<stdio.h>
int main()
{
    int i = 0;//先定义一个i,为后的循环做准备
    for (i = 101; i <= 200; i+=2)//定义一个for循环
    {
        int j = 0;//定义一个用于与100-200之间的数相除
        for (j = 2; j <= i; j++)//用大于2,小于i的j取模
        {
            if (i % j == 0)//若i能被j整除就跳出循环
            {
                break;
            }
        }
      if (j>=i)//j一直找,直到找到大于i的数都没有找到整除的数,就是素数
        {
            printf("%d ", i);//把素数打印出来
        }  
    }
    return 0;
}

最后运行的结果也是跟之前一样的!

     (还只是写博客的新手,不对的大家可以帮忙指出,修改)

举报

相关推荐

0 条评论