当前位置: 首页 > news >正文

KiKi知道了什么是质数,他现在想知道所有三位整数中,有多少个质数

先来说说什么是质数吧,哈哈,就是只能被1和他自身整除的数。

叫我们统计所有三位数中有多少个质数,那么我们可以实现一个函数来判断该数是不是质数。

那么是不是要用目标数去除以2~目标数-1的呢?只要有数可以被整除,那么我们判断该数则不是质数。为了提高程序的效率,我们可以写成2~目标数开方的范围,为什么可以这样写呢?

如果一个数n不是质数,那么必定存在一个小于等于n的开方的整数i,满足i能够整除n。因此,我们只需要判断从2到n的开方之间的所有整数是否能够整除n,如果存在一个能够整除n的整数,那么n就不是质数;如果不存在这样的整数,那么n就是质数。

具体来说,如果一个数n是合数,那么必定存在两个因数a和b,满足1 < a <= b <= n。根据乘积的性质,如果a * b = n,则必定存在a和b中至少一个小于或等于n的开方。因此,我们只需要判断从2到n的开方之间的所有整数是否能够整除n,即可得出n是质数还是合数的结论。

这样的判断范围可以写成小于等于目标数的开方,是因为:如果存在一个大于目标数开方的因数,那么必定存在另一个小于等于目标数开方的因数,这样就会与前面的判断矛盾。因此,我们只需要判断从2到目标数开方之间的所有整数是否能够整除目标数,即可得出目标数是质数还是合数的结论。

那么我们假设是素数我们返回1

不是素数返回0;

那么我们来看看这个函数的实现:

int  Is_Zhi(int num)
{if (num < 2){return 0;}for (int j = 2; j <= sqrt(num); j++){if (num % j == 0){return 0;		}}return 1;
}

那么在主函数中,就很简单了:

int main()
{int count = 0;for (int i = 100; i < 1000; i++){if (Is_Zhi(i)){count++;}}printf("%d", count);return 0;
}

 看看整体的代码:

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

see you again!

相关文章:

  • viple进阶2:打印九九乘法表
  • SLAM从入门到精通(被忽视的基础图像处理)
  • STM32笔记—DMA
  • 2023年十大地推拉新接单平台和网推接单平台,都是一手单
  • mac电脑系统清理软件CleanMyMac X2024破解版下载
  • MySQL的备份恢复
  • Flink SQL DataGen Connector 示例
  • Git使用规范指南
  • 在 ASP.NET C# 中用Aspose.PDF将 PDF 页面转换为 JPG 图像
  • 浅谈电力物联网时代物联网技术在电力系统中的应用
  • 8年资深测试总结,接口自动化框架的设计与实现,一文打通...
  • Go:如何在GoLand中引用github.com中的第三方包
  • 关于Alibaba Cloud Toolkit 下载配置以及后端自动部署
  • RT-DETR 应用 BiFPN 结构 | 加权双向特征金字塔网络
  • 【pytorch源码分析--torch执行流程与编译原理】
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • IDEA 插件开发入门教程
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • JavaScript类型识别
  • spring boot 整合mybatis 无法输出sql的问题
  • Vue2.x学习三:事件处理生命周期钩子
  • 大主子表关联的性能优化方法
  • 盘点那些不知名却常用的 Git 操作
  • 全栈开发——Linux
  • 微信小程序:实现悬浮返回和分享按钮
  • 国内唯一,阿里云入选全球区块链云服务报告,领先AWS、Google ...
  • ​草莓熊python turtle绘图代码(玫瑰花版)附源代码
  • (1)常见O(n^2)排序算法解析
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • (ZT)薛涌:谈贫说富
  • (二)正点原子I.MX6ULL u-boot移植
  • (六)软件测试分工
  • (原創) 如何刪除Windows Live Writer留在本機的文章? (Web) (Windows Live Writer)
  • (转)全文检索技术学习(三)——Lucene支持中文分词
  • *++p:p先自+,然后*p,最终为3 ++*p:先*p,即arr[0]=1,然后再++,最终为2 *p++:值为arr[0],即1,该语句执行完毕后,p指向arr[1]
  • .net CHARTING图表控件下载地址
  • .net core 连接数据库,通过数据库生成Modell
  • .net core使用ef 6
  • .NET Framework 3.5中序列化成JSON数据及JSON数据的反序列化,以及jQuery的调用JSON
  • .NET MVC之AOP
  • .Net 代码性能 - (1)
  • .net利用SQLBulkCopy进行数据库之间的大批量数据传递
  • .NET运行机制
  • .Net转前端开发-启航篇,如何定制博客园主题
  • @Valid和@NotNull字段校验使用
  • [8-23]知识梳理:文件系统、Bash基础特性、目录管理、文件管理、文本查看编辑处理...
  • [BZOJ2281][SDOI2011]黑白棋(K-Nim博弈)
  • [C#基础]说说lock到底锁谁?
  • [C/C++]数据结构 栈和队列()
  • [C++] 多线程编程-thread::yield()-sleep_for()
  • [C++]二叉搜索树
  • [CDOJ 838]母仪天下 【线段树手速练习 15分钟内敲完算合格】
  • [CSAWQual 2019]Web_Unagi ---不会编程的崽
  • [ITIL学习笔记]之事件管理(2)
  • [LeetCode] 148. Sort List 链表排序