【C语言必刷题】4. 打印100~200之间的素数

2024-02-26 1343阅读

温馨提示:这篇文章已超过440天没有更新,请注意相关的内容是否还可用!

【C语言必刷题】4. 打印100~200之间的素数

📚博客主页:爱敲代码的小杨.

✨专栏:《Java SE语法》 | 《数据结构与算法》 | 《C生万物》

❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更新的动力❤️

🙏小杨水平有限,欢迎各位大佬指点,相互学习进步!

【C语言必刷题】4. 打印100~200之间的素数

文章目录

  • 🔥 题目描述
  • 🔥 解题思路
  • 🔥代码

    🔥 题目描述

    使用C语言写一个程序打印100~200之间的的素数,数字中间使用空格分割。

    🔥 解题思路

    素数是指只能被1和它本身整除的正整数。我们可以遍历100~200,并找出那些数字是素数。

    1. 试除法:从 2 到 x-1 ,逐个尝试是否能整除 x,如果能,x就不是素数,否则 x 是素数

      优化代码:当 x 为偶数时,x 一定不是素数,因此在遍历时我们可以跳过每个偶数

    2. 试除法时间优化:

      • 当 2 到 x-1 中存在某个数 t 可以整除 x 时,令 d = x/t,则 d 也可以整除 x,并且结果为 t。因

        此,当 2~ x \sqrt[]x x ​中不存在可以整除x的数时, x + 1 \sqrt[]x+1 x ​+1​~ x 也不存在可以整除 x 的数。

      • 利用反证法证明:

        1. 假设 2 到 x-1 中不存在可以整除 x 的数, x + 1 \sqrt[]x+1 x ​+1~x 中存在⼀个数 d 可以整除 x;

        2. 存在另⼀个数 t=x/d 也可以整除 x;

        3. t*d=x,因为 d> x \sqrt[]x x ​ ,所以 t< x \sqrt[]x x ​,即 2 到 x-1 中存在某个数 t 可以整除 x;

        4. 与假设矛盾,反证成成立。

    🔥代码

    #include 
    int main()
    {
        int i = 0;
        for (i = 100; i 
            int flg = 1; // flg用于标记是否为素数,初始假设为素数
            int j = 0;
            for (j = 2; j 
VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]