首页 > 其他分享 >初识C语言|素数代码之——你的代码,我的代码,好像不一样

初识C语言|素数代码之——你的代码,我的代码,好像不一样

时间:2024-11-17 23:18:52浏览次数:3  
标签:代码 C语言 素数 初识 整除 内层 咱们 循环

        嘿,大家好!咱作为大一新生,来聊聊 C 语言输出素数这事儿。其实,说白了,这就像玩游戏找宝藏一样,路数有好多呢。咱可以老老实实用简单办法,一个个试。不过这有点傻,像个愣头青。还有个神奇的筛法,就像用个大网把合数都捞走,剩下的就是宝贝素数啦。感觉 C 语言像个大迷宫,找素数的方法就是各种神奇的路线,咱们可得好好研究,可不能在这迷宫里“迷路”哈!

      现在,就让咱们以“输出100到200之间的素数”为例,简单分享一下,我个人的学习经历。

      首先,咱们来看一个最基本代码,相信大家都可以看懂哈。

       

      咱讲专业一点,该过程就是:外层循环遍历 100 到 200 之间的每个数。而对于每个数,内层循环用于检查它是否能被 2 到该数减 1 之间的数整除。如果能整除,就通过 break  跳出内层循环。如果内层循环正常结束(即没有提前跳出),说明该数不能被 2 到它自身减 1 之间的任何数整除,那么它就是一个素数,将其输出。

      以上的代码较为清晰。但是,相信很多同学,看懂会写出另一个代码,请继续向下揭秘。                                                

          左边代码与上面不同的是,左边每次进入外层循环,都先把 flag  初始化为 1  ,这意味着假设当前的 i 是素数 。

与此同时,咱们还可以对第二个代码,进行进一步的优化,如下:

       第 5 行: for (i = 101; i < 201; i += 2)  这是一个循环,从 101 开始,每次增加 2,直到小于 201。这样做是为了只检查奇数,因为偶数(除了 2)一定不是素数。
         第 7 行: for (j = 2; j < sqrt(i); j++)  这是一个内层循环,从 2 到  i  的平方根,用于检查  i  是否能被整除。

     怎么样,同样一个代码,竟然可以有那么多种解法,并且还可以进一步优化。C语言是不是很神奇呢?

    让咱们带着这份热情,继续探索编程语言的魅力吧!

标签:代码,C语言,素数,初识,整除,内层,咱们,循环
From: https://blog.csdn.net/oi0825/article/details/143726466

相关文章

  • 关于我重生到21世纪学C语言这件事——指针详解(3)
    人无完人,持之以恒,方能见真我!!!共同进步!!文章目录1.字符指针变量2.数组指针变量3.⼆维数组传参的本质4.函数指针变量5.函数指针数组6.转移表1.字符指针变量在指针的类型中我们知道有⼀种指针类型为字符指针char*;⼀般使⽤:intmain(){charch='w......
  • 芒果Ultralytics最新YOLO11算法原理解析-包含最新详细-结构图,以及内附YOLO11各部分细
    YOLO11系列是YOLO家族中最先进的(SOTA)、最轻量级、最高效的模型,其表现优于其前辈。它由Ultralytics创建,该组织发布了YOLOv8,这是迄今为止最稳定、使用最广泛的YOLO变体。YOLO11将延续YOLO系列的传奇。在本文中,我们将探讨YOLO11文章目录YOLO11架构、YOLO11......
  • c语言程序
    1.第⼀个C语⾔程序#include<stdio.h>intmain(){printf("helloC\n");return0;}​2.main函数每个C语⾔程序不管有多少⾏代码,都是从main函数开始执⾏的,main函数是程序的⼊⼝,main函数也被叫做:主函数。main前⾯的int表⽰main函数执......
  • Java学习教程,从入门到精通,Java继承语法知识点及案例代码(29)
    1、Java继承语法知识点及案例代码一、继承的基本概念继承是面向对象编程中的一个重要概念,指的是子类从父类继承属性和方法的能力。通过继承,子类可以直接访问父类的非私有属性和非私有方法,实现代码重用和扩展。二、继承的语法在Java中,使用关键字extends来实现继承。子类......
  • Kibana:使用 Devtools console 把请求变成 Python 或 Nodejs 的代码
    特别指出,这个最新的ElasticStack8.16发布版的功能。我很兴奋地来尝试这个功能。在今天的文章中,我们来使用一个例子来进行详细地描述。安装如果你还没有安装好自己的Elasticsearch及Kibana,请参考如下的文章来进行安装:如何在Linux,MacOS及Windows上进行安装Elast......
  • 一分钟掌握 kom:一行代码,轻松玩转 Kubernetes 多集群管理!
    目录导读基于kom的Kubernetes多集群操作教程1.工具简介2.安装和运行2.1集成`kom`3.多集群管理3.1注册集群3.2查看和选择集群4.资源管理操作4.1查询资源4.2创建资源4.3更新资源4.4删除资源4.总结引用导读管理Kubernetes多集群通常是一项复......
  • C语言的常见概念------1
    1.课前准备1.1什么是C语言C语言是一门计算机语言,而且是编译型的计算机语言。所以C 语言源代码都是文本文件,而计算机只能够识别二进制指令,所以我们需要对文件进行编译和链接,把文本文件翻译成二进制指令之后,机器才能执行如图,1.2选择集成开发环境集成开发环境(IDE):集编译器,......
  • 2024年大学生计算机大赛决赛-个人赛参考代码
    比赛链接A.退休代码voidsolve(){inta,b;cin>>a>>b;intnum=a+b;intres=(1000000+num-1)/num;cout<<res/12<<''<<res%12;}B.四季代码voidsolve(){ inta,b; scanf("%d-%d&qu......
  • 读代码真的能让你成为更好的程序员吗?深入解析编程学习的正确方法
    开篇问候大家好,我是hikktn!从去年开始直播写代码后,许多粉丝就不断向我提出这样的问题:“你的代码能不能分享给我们学习?”他们并不是为了窃取商业机密,而是希望通过阅读代码,提升自己的编程能力。还有一些粉丝希望我推荐优秀的开源软件,下载后通过研究代码来获得启发。每次遇......
  • 代码随想录:螺旋矩阵 II
    代码随想录:螺旋矩阵II题目是不难的,本质是重复多次顺时针旋转,注意边界条件。我第一次写错是二维数组的运用出了问题,vec[i][j]中,i代表行,j代表列,我的脑袋是明白的,但是在运用时,一开始二维矩阵向右遍历时,其实变的是j而非i另外注意一下二维vector的建立就行//二维vector数组本质上......