牛客网刷题 | BC81 KiKi求质数个数

目前主要分为三个专栏,后续还会添加:

        专栏如下:                 C语言刷题解析       C语言系列文章       我的成长经历

感谢阅读!

初来乍到,如有错误请指出,感谢!


描述

KiKi知道了什么是质数(只能被1和他自身整除的数),他现在想知道所有三位整数中,有多少个质数。

输入描述:

输出描述:

一行,一个整数,表示所有三位整数中,有多少个质数。


思路 : 

理解质数:质数是指只能被1和它本身整除的大于1的自然数。例如,2、3、5、7等都是质数。

定义范围:题目要求找出所有三位整数中的质数个数,即我们需要检查的数的范围是从100到999。

判断质数:对于每一个数,我们需要判断它是否是质数。判断一个数是否是质数的常见方法是尝试除以所有小于或等于它的平方根的数。如果在这个范围内没有找到除数,那么这个数就是质数。

优化检查:由于我们知道所有质数除了2以外都是奇数,我们可以从3开始检查,并且每次增加2(跳过偶数),这样可以减少不必要的检查。

计数:对于每一个被判断为质数的数,我们增加计数器的值。

输出结果:在遍历完所有的三位整数后,输出计数器的值,这个值就是所有三位整数中质数的个数。


代码 1:

#include<stdio.h>
int main()
{int n=1;int count=0;for(int i=100;i<=999;i++){n=1;for(int j=2;j<i;j++){if(i%j==0){n=0;}}if(n){count++;}}printf("%d ",count);return 0;
}

 代码 2 :

#include <stdio.h>
int main() {方法1:求素数数量,总数减非素数数量int totalNum = (999 - 100) + 1;int count = 0;for (int i = 100; i < 1000; i++){for (int j = 2; j * j <= i; j++){if (i % j == 0){count++;break;}}}printf("%d\n", totalNum - count);/* 方法2:用flag标记,1为素数,0为非素数;默认flag为1,若在内循环i被j整除,则设flag为0,表示i为非素数;内循环判断完后判断flag值,flag为1则prime++;注意要将flag重置为1
*/int prime = 0, flag = 1;for (int i = 100; i < 1000; i++) {for (int j = 2; j * j <= i; j++) {if (i % j == 0) {flag = 0;break;}}if (flag == 1) {prime++;}flag = 1;}printf("%d\n", prime);/* 方法3:当j * j <= i时,i % j == 0,那么说明i能被j整除,i不是素数当j * j > i时,说明i % j != 0,说明i不能被j整除,i是素数注意除数j重置为2,因为j的作用域为整个外循环*/int cnt = 0;int i, j;for (i = 100; i < 1000; i++) {for (j = 2; j * j <= i; j++) {if (i % j == 0) {break;}}if (j * j > i) {cnt++;}// Reset divisorj = 2;}printf("%d\n", cnt);return 0;
}

代码 3 :

AI 写的

#include <stdio.h>
#include <math.h>// 函数声明,判断一个数是否为质数
int isPrime(int num);int main() {int count = 0; // 用于计数的变量for (int i = 100; i <= 999; i++) { // 遍历所有的三位整数if (isPrime(i)) { // 如果i是质数count++; // 计数器增加}}printf("%d\n", count); // 输出质数的个数return 0;
}// 函数定义,判断一个数是否为质数
int isPrime(int num) {if (num <= 1) return 0; // 小于等于1的数不是质数if (num == 2) return 1; // 2是质数if (num % 2 == 0) return 0; // 排除大于2的偶数for (int i = 3; i <= sqrt(num); i += 2) { // 从3开始,以2为步长遍历if (num % i == 0) return 0; // 如果num能被i整除,则不是质数}return 1; // 如果没有找到除数,则num是质数
}

知识点 : 

质数定义

质数是指只能被1和它本身整除的大于1的自然数。

循环结构

使用循环结构遍历指定范围内的所有整数。

条件判断

使用条件语句来判断一个数是否满足质数的条件。

函数设计

设计一个函数isPrime来判断一个整数是否是质数。

数学知识

利用数学知识优化质数判断过程,例如,只检查到该数的平方根。

迭代器步长

在循环中使用步长为2,只检查奇数,因为除了2以外,所有质数都是奇数。

平方根函数

使用sqrt()函数来获取一个数的平方根,减少不必要的计算。

模运算

使用%运算符来判断一个数是否能被另一个数整除。

控制流程

使用return语句从函数返回,以及结束程序的执行。

输入输出

使用printf()函数进行输出。

基本数据类型

使用基本数据类型int来存储整数。

变量声明与初始化

声明并初始化变量用于计数和循环控制。

代码结构

理解并实现程序的基本结构,包括主函数main和辅助函数。

算法效率

理解算法的时间复杂度,并尝试优化以提高效率。

 

  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/8697.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【离散数学】集合上二元关系性质判定的实现(c语言实现)

实验要求 关系矩阵的初始化和打印 我们将关系矩阵存入一个二维数组中&#xff0c;因为集合元素个数不会超过5个所以就用一个5行5列二维数组来表示。 在我们得到了集合元素个数之后我们就可以对数组进行0,1随机赋值 //初始关系矩阵 void init_matrix(int array[][5], int n) {…

多核DSP并行计算跨平台通信解决方案

并行计算的核心是计算节点以及节点间的通信与协调机制。OpenMP虽然给开发者提供了极易上手的增量式开发方式&#xff0c;但是OpenMP在与复杂架构的MCSDK结合后&#xff0c;工具与代码产生了大量不可调试的黑盒子&#xff0c;更是决定了它不能用于关键任务领域&#xff0c;如军工…

算法学习Day2——单调栈习题

第一题&#xff0c;合并球 题解&#xff1a;一开始写了一次暴力双循环&#xff0c;直接O(n^2)严重超时&#xff0c;后面于是又想到了O(n)时间复杂度的链表&#xff0c;但是还是卡在 最后一个数据会TLE&#xff0c;我也是高兴的拍起来安塞腰鼓和华氏护肤水&#xff0c;后面学长给…

基于模糊控制的AMT自动变速汽车换档智能控制系统simulink建模与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 5.完整工程文件 1.课题概述 基于模糊控制的AMT自动变速汽车换档智能控制系统simulink建模与仿真。 2.系统仿真结果 输入的V&#xff0c;Ac&#xff0c;a 输出的档位&#xff1a; 3.核心程序与模型 版…

【C语言】static关键字用法

目录 一、static修饰局部变量 二、static修饰全局变量 三、static修饰函数 一、static修饰局部变量 首先我们来看两段代码: 代码1&#xff08;不加static&#xff09; #include <stdio.h> void test() {int i 0;i;printf("%d ", i); } int main() {int i…

VMvare如何更改虚拟机内共享文件夹的挂载点

更改虚拟机内共享文件夹的路径 进入目录 /etc/init.d ,并找到vmware-tools文件 里面有配置项 vmhgfs_mnt"/mnt/hgfs" 将引号内的内容更改为你需要挂载的路径,重启即可 注意挂载的路径不能是 “/”&#xff0c;必须根目录下的某个文件夹&#xff0c;或者其子文件夹 …

使用Docker安装Yapi接口管理工具

简介&#xff1a; YAPI 是由去哪儿网移动架构组开发的一款可视化接口管理工具。它具有可视化管理、高效易用、功能强大等特点。它提供了便捷的接口创建、发布和维护方式&#xff0c;开发人员可以通过简单的操作实现接口管理。 YAPI 还支持类似 postman 的接口调试&#xff0c;对…

GPU通用计算介绍

谈到 GPU &#xff08;Graphics Processing Unit&#xff0c;图形显示卡&#xff09;大多数人想到的是游戏、图形渲染等这些词汇&#xff0c;图形处理确实是 GPU 的一大应用场景。然而人们也早已关注到它在通用计算上的巨大潜力&#xff0c;并提出了 GPGPU (General-purpose co…

Android进阶之路 - 静态会员进度条

年后这个新版本加入了VIP模块&#xff0c;有幸正好由我来负责&#xff0c;可以再积累一下这方面的知识。 那段时间看了一本书&#xff0c;书中说到初级码农的特性之一就是完全集中于某些功能&#xff0c;忽略了了很多成长机会&#xff0c;所以重复性劳作带来的成长值有限&#…

ETL工具中JSON格式的转换方式

JSON的用处 JSON&#xff08;JavaScript Object Notation&#xff09;是一种轻量级的数据交换格式&#xff0c;其设计初衷是为了提升网络应用中数据的传输效率及简化数据结构的解析过程。自其诞生以来&#xff0c;JSON 已成为Web开发乃至众多软件开发领域中不可或缺的一部分&a…

神经网络案例实战

&#x1f50e;我们通过一个案例详细使用PyTorch实战 &#xff0c;案例背景&#xff1a;你创办了一家手机公司&#xff0c;不知道如何估算手机产品的价格。为了解决这个问题&#xff0c;收集了多家公司的手机销售数据&#xff1a;这些数据维度可以包括RAM、存储容量、屏幕尺寸、…

# 光标变为下划线怎么办?

光标变为下划线怎么办&#xff1f; 光标变为下划线通常表示您处于覆盖模式。在这种模式下&#xff0c;您键入的任何内容都将覆盖光标位置处的文本。如果想要恢复光标为正常显示&#xff0c;您可以尝试以下方法&#xff1a; 1、在桌面或文档编辑界面&#xff0c;按键盘上的 【I…

Object类

Object类 概念&#xff1a;Object类是所有类的父类&#xff0c;也就是说任何一个类在定义时候如果没有明确的指定继承一个父类的话&#xff0c;那么它就都默认继承Object类&#xff0c;因此Object类被称为所有类的父类&#xff0c;也叫做基类/超类。 常用方法 方法类型描述eq…

每日OJ题_记忆化搜索①_力扣509. 斐波那契数(四种解法)

目录 记忆化搜索概念和使用场景 力扣509. 斐波那契数 解析代码1_循环 解析代码2_暴搜递归 解析代码3_记忆化搜索 解析代码4_动态规划 记忆化搜索概念和使用场景 记忆化搜索是一种典型的空间换时间的思想&#xff0c;可以看成带备忘录的爆搜递归。 搜索的低效在于没有能够…

《手把手教你怎么上手做一个小程序》

准备工作&#xff1a; 硬件准备&#xff1a; 装有微信的手机一台。 账号注册&#xff1a; 进入https://mp.weixin.qq.com/cgi-bin/registermidpage?actionindex&langzh_CN&token注册一个微信小程序账号。 然后输入邮箱注册账号。一个邮箱只能注册一个微信公众平台…

【面试经典 150 | 数组】找出字符串中第一个匹配项的下标

文章目录 写在前面Tag题目来源解题思路方法一&#xff1a;find方法二&#xff1a;暴力匹配方法三&#xff1a;KMP 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法&#xff0c;两到三天更新一篇文章&#xff0c;欢迎催更…… 专栏内容以分析题目为主&#xff0c;…

算法学习006-瓷砖总数 广度优先算法BFS 中小学算法思维学习 信奥算法解析 c++实现

目录 C瓷砖总数 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 七、推荐资料 C瓷砖总数 一、题目要求 1、编程实现 在一个长方形房间&#xff0c;铺着不同颜色的的瓷砖&#xff0c;有红色和黑色&#…

AR人脸道具SDK解决方案,实现道具与人脸的自然融合

AR人脸道具SDK解决方案&#xff0c;实现道具与人脸的自然融合美摄科技以其卓越的技术实力和创新能力&#xff0c;为企业带来了全新的AR人脸道具SDK解决方案。这一解决方案将为企业打开全新的市场机会&#xff0c;为用户带来前所未有的互动体验。 颠覆传统&#xff0c;开启AR人…

AI预测福彩3D第10套算法实战化赚米验证第1弹2024年5月5日第1次测试

从今天开始&#xff0c;准备启用第10套算法&#xff0c;来验证下本算法的可行性。因为本算法通过近三十期的内测&#xff08;内测版没有公开预测结果&#xff09;&#xff0c;发现本算法的预测结果优于其他所有算法的效果。彩票预测只有实战才能检验是否有效&#xff0c;只有真…

产业项目招商活动会议课程报名签到h5小程序pc开源版开发

产业项目招商活动会议课程报名签到h5小程序pc开源版开发 一个集PC和移动端功能于一体的解决方案&#xff0c;线上线下进行服务&#xff0c;围绕 活动报名、在线课程、项目大厅、线下签到、会员系统等。为商会提供了更加便捷高效的管理方式&#xff0c;提升了商会活动和项目的组…