C语言-素数判断专题

C语言程序设计基础中,有一个常打交道的老朋友——素数。

1. 初始版:

从2 ~ n-1依次判断整除(公因数)

2. 改良版1.0:

比2大的偶数直接pass,循环步长为2。2和3的临界判断在循环外,一开始ret = 1。

3. 改良版2.0:

判断到该数的平方根值(公因数有关)即可,sqrt函数求出算术平方根并返回double型。如:4的算术平方根=2,正好是4的二分之一。一般python可以用cmath包中的sqrt可以进行负数的平方根计算-得到一个正的纯虚数(复数【实数+虚数】) ( i^2 = -1 )。C语言可能需要自己构建类似的函数处理。

4. 改良版3.0(运用数组):

前提需要建立一张已知的素数表{2,},借助已知的素数来判断之后的。
如:可以用来获知前100个素数——

包含的小套路: cnt = 1; prime[cnt++] = i; 一步中做了两步操作,其中用来将cnt指向下一个位置。

将数组作为函数参数时,同时接收数组与数组长度两个参数。

5. 改良版4.0(素数–埃式筛选法):

x=2,2x、3x、4x……(划掉非素数);x+=1(下一个素数),2x、…… ;(重复)直到序列中最大数小于最后一个被标记的素数的平方时,那么序列剩余的数都是素数。

void judgePrime_AiSh(void) {const int maxNumber = 25; //判断到maxNum-1int isPrime[maxNumber];int i, x;for ( i = 0; i < maxNumber; i ++ ) {isPrime[i] = 1; //bool isPrime true}//for test{printf("\t");for ( i = 2; i < maxNumber; i ++ ) {printf("%d\t", i);}printf("\n");}//for test endfor ( x = 2; x*x <= maxNumber; x ++ ) {if ( isPrime[x] ) {for ( i = 2; i*x < maxNumber; i ++ ) { //筛选过程isPrime[i*x] = 0;}}//for test{printf("%d\t", x);for ( i = 2; i < maxNumber; i ++ ) {printf("%d\t", isPrime[i]);}printf("\n");}//for test end}for ( i = 2; i < maxNumber; i ++ ) {if ( isPrime[i] ) {printf("%d\t", i);}}printf("\n");
}

测试环节打印不下:修改缓冲区大小即可

C语言学习笔记08-2素数判断专题篇相关推荐

  1. 小白c语言学习笔记(2)——有一篇文章,共有3行文字,每行有80个字符。要求分别统计出其中英文大写字母、小写字母、数字、空格以及其它字符的个数。

    题:有一篇文章,共有3行文字,每行有80个字符.要求分别统计出其中英文大写字母.小写字母.数字.空格以及其它字符的个数. #include<stdio.h> #include<str ...

  2. C语言学习笔记第十天

    C语言学习笔记第十天 目录 C语言学习笔记第十天 一.什么是堆内存 二.为什么要使用堆内存 三.如何使用堆内存 四.malloc的内存管理机制 五.使用堆内存需要注意的问题 六.内存清理函数 七.堆内 ...

  3. R语言学习笔记——高级篇:第十四章-主成分分析和因子分析

    R语言 R语言学习笔记--高级篇:第十四章-主成分分析和因子分析 文章目录 R语言 前言 一.R中的主成分和因子分析 二.主成分分析 2.1.判断主成分的个数 2.2.提取主成分 2.3.主成分旋转 ...

  4. C语言学习笔记08-函数、变量作用域{}

    C语言自定义函数 函数 / 方法(面向对象语言),将功能重复的代码段(原始的方式是cv)提取抽象出main方法外,将其放入一个新的函数中,从而在main中只需要调用该函数就可完成一项复杂的工作,代码会 ...

  5. 梓益C语言学习笔记之链表&动态内存&文件

    梓益C语言学习笔记之链表&动态内存&文件 一.定义: 链表是一种物理存储上非连续,通过指针链接次序,实现的一种线性存储结构. 二.特点: 链表由一系列节点(链表中每一个元素称为节点)组 ...

  6. JavaWeb黑马旅游网-学习笔记08【旅游线路详情】

    Java后端 学习路线 笔记汇总表[黑马程序员] JavaWeb黑马旅游网-学习笔记01[准备工作] JavaWeb黑马旅游网-学习笔记02[注册功能] JavaWeb黑马旅游网-学习笔记03[登陆和 ...

  7. c语言中void arrout,c语言学习笔记(数组、函数

    <c语言学习笔记(数组.函数>由会员分享,可在线阅读,更多相关<c语言学习笔记(数组.函数(53页珍藏版)>请在人人文库网上搜索. 1.数组2010-3-29 22:40一维数 ...

  8. c语言float二进制输出代码_C语言学习笔记——学前知识概述

    将我大一学习C语言时做的笔记拿来与大家分享,内容比较浅显,比较适合初学者,如有错误还请见谅,提出改正,谢谢! 前言:此C语言笔记是本人在自学时记录的一些重点或初学者常犯的错误,希望我的这本笔记能够对大 ...

  9. go get 拉取指定版本_go语言学习笔记-基础知识-3

    相关文档 go语言学习笔记-目录 1.简介 1.1 什么是GO Go 是一个开源的编程语言,它能让构造简单.可靠且高效的软件变得容易.Go是从2007年末由Robert Griesemer, Rob ...

最新文章

  1. Xampp安装时需注意的事项
  2. 云服务器无法绑定公网IP问题解决方案
  3. 【Android 插件化】VirtualAppEx 编译运行 ( VirtualAppEx 简介 | 配置 VirtualAppEx 编译环境 | 编译运行 VirtualAppEx 代码 )
  4. 51nod 1103 N的倍数 思路:抽屉原理+前缀和
  5. Robo 3T SQL
  6. C++笔记——指针函数/函数指针
  7. 学习搭建 Consul 服务发现与服务网格-有丰富的示例和图片
  8. 【牛客 - 373C】抓捕盗窃犯(连通图,思维,dfs 或 并查集)
  9. hive多个表join_8个Hive数据仓工具面试题锦集!
  10. Interesting Finds: 2008.01.04
  11. 【转载】GridView自动排序
  12. 李飞飞宣布辞职后首次演讲!提出AI三原则;BAT大佬上海打假人工智能
  13. 神威超级计算机机械知识,神威超级计算机的计算能力有多强?
  14. 初次了解polyfill
  15. Excel数据透视表不显示汇总行
  16. 短视频应用应该如何打造技术架构?
  17. 图片识别 就用uu云验证码识别平台
  18. 石家庄c语言基础知识入门,石家庄小学生学习编程暑假
  19. spring循环依赖和三级缓存
  20. code blocks代码性能分析_Blockly 例子分析

热门文章

  1. php基础九(通过cURL来做小偷程序)
  2. 【重磅最新】163篇ICML-2021强化学习领域论文整理汇总(2021.06.07)
  3. ssh 使用 wangeditor3 富文本编辑器上传图片方法
  4. 开启编程之旅——什么是编程
  5. 显示器偏色测试软件,电脑显示器偏色怎么调?电脑显示器偏色校正方法(2)
  6. linux 标准背光设备,linux背光子系统(backlight)
  7. h3c 链路聚合测试_H3C设备实验之配置链路聚合
  8. 手把手教你实现MVVM架构
  9. 几种点云(网格)孔洞填充方法(1)
  10. LTE学习笔记--MAC--HARQ