求100以内的素数是许多编程初学者的必会的技能,具体方法有很多,这里我们用筛选法来求。

筛选法的意思就是,将非素数全部筛选出来,将其赋值为0,那么剩下的就全部都是素数了,具体步骤如下:

  1. 第一步,创建判断函数,判断输入的数是否为素数,不是则返回0,是则返回1;
  2. 第二步,创建输出函数,先创建容量为101的数组并将其全部赋值为0,这样可以把1-100按顺序显示,便于理解。我们都知道1是特殊的素数,所以我们直接从2开始循环,直到99,把每个元素赋值为自己的序号值,即arr[2]=2,arr[3]=3,...,arr[99]=99以此类推。再利用判断函数对每一个数进行判断,是否为素数,若判定为非素数,则将其重新赋值为0,经过循环后,剩下来非0的所有数就都是非素数了。最后再将值不为0的所有元素全部输出,即为100以内的全部素数;
  3. 最后在主函数中输出。

应该注意的是,在判断是否为素数时,我最开始写的是k<sqrt(x),后来发现这样漏掉了一些平方数4,9,25和49,所以我又对函数进行了更改,改成了k<=sqrt(x),结果才正确输出了。

完整代码如下:

#include<iostream>
#include<math.h>
using namespace std;
int is_prime(int x) // 判断是否为素数
{for (int k = 2; k <= sqrt(x); k++){if (x%k == 0)return 0; //不是素数}return 1; //是素数
}void get_prime() //输出100以内素数
{int arr[101] = { 0 };for (int i = 2; i < 100; i++){arr[i] = i; //从2到99,令每一个元素等于自己的序号}for (int j = 2; j < 100; j++){if (is_prime(arr[j]) == 0)arr[j] = 0; //不是素数则将其标为0}for (int m = 2; m < 100; m++){if (arr[m] != 0)cout << arr[m] <<" ";}
}int main()
{get_prime();system("pause");return 0;
}

C++编程用筛选法求100以内的素数相关推荐

  1. 用筛选法求100以内的素数(数组)

    用筛选法求100以内的素数,要求使用数组. #include "stdafx.h" #include<iostream> using namespace std; in ...

  2. 【C语言】 利用筛选法求100以内的素数

    算法思路: 原理很简单,就是当i是质(素)数的时候,i的所有的倍数必然是合数.如果i已经被判断不是质数了,那么再找到i后面的质数来把这个质数的倍数筛掉. 代码如下: //C语言 筛选法求100以内的素 ...

  3. C语言:用筛选法求100以内的素数

    用筛选法求100以内的素数 素数:即质数,质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数. 筛选法:1不是素数,划去:2是素数,留下,将2的倍数划去:3没被划去,将3的倍数划去: ...

  4. 用筛选法求100以内的素数

    用筛选法求100以内的素数 所谓筛选法是指埃拉托色尼筛选.埃拉托色尼是古希腊的著名数学家.他采取的方法是,在一张纸上写上1到1000的全部整数,然后逐个判断他们是否素数,找出一个非素数,就把他们挖掉, ...

  5. c语言 用筛选法求100以内的素数,使用筛选法求100以内的素数

    使用筛选法求100以内的素数 筛选法介绍 先把N个自然数按次序排列起来. 1不是质数,也不是合数,划去. 第二个数2是质数留下来,而把2后面所有能被2整除的数都划去.2后面第一个没 划去的数是3,把3 ...

  6. 用筛选法求100之内的素数(C语言 数组)

    1.解释下什么是筛选法? 筛选法又称筛法,具体做法是:先把N个自然数按次序排列起来.1不是质数,也不是合数,要划去.第二个数2是质数留下来,而把2后面所有能被2整除的数都划去.2后面第一个没划去的数是 ...

  7. c语言学习之用筛选法求100之内的素数。

    用筛选法求100之内的素数 首先我们来看一下什么是素数: 素数又称质数.一个大于1的自然数,除了1和它自身外,不能被其他自然数整除: 介绍一下筛选法: 筛选法所谓"筛选法"指的是& ...

  8. C语言学习之用筛选法求100之内的素数

    用筛选法求100之内的素数 #include <stdio.h> #include <math.h> void main(){int i,j,n,a[101];for(int ...

  9. 用筛选法求100之内的素数。谭浩强《c语言程序设计》第六章第一题

    题目 本题是谭浩强<c语言程序设计>第六章第一题 题目:用筛选法求100之内的素数. 以下是本篇文章正文内容,欢迎朋友们进行指正,一起探讨,共同进步.--来自考研路上的lwj 一.解题思路 ...

最新文章

  1. Owasp live CD 2011下载地址
  2. No style sheet with given id found错误
  3. 游戏项目中观察者模式解析
  4. python获取eth0_详解 Python 获取网卡 IP 地址的黑魔法
  5. js中数组反向、排序reverse、sort
  6. Python使用---面向对象OOP(类和对象)--完善中
  7. Matlab中一个很有用的函数:regionprops
  8. [3D数学基础:图形与游戏开发]读书笔记 第10章(3D中方位与角位移)
  9. android 手机 打印 图片,Mopria打印PDF、TXT文档或图片(适用于Android安卓系统)
  10. switch错误码2016-0247 无法识别SD卡解决方案(猴子也能看懂的简单命令行操作,无需格式化!)
  11. 81192!请返航!
  12. volatility使用
  13. 杂牌蓝牙在2003系统使用新驱动的破解方法!
  14. 中国工业大数据行业发展趋势分析与投资战略规划建议报告2022-2028年版
  15. 软件保护工具VMProtect用户手册——添加和搜索水印
  16. Android斗地主游戏源码
  17. mysql 快速入门,SOAR 101 快速入门指南
  18. java if 嵌套_java嵌套if语句
  19. 席南华院士:数学的意义
  20. cadence16.6软件窗口内容缺失

热门文章

  1. Python各种镜像链接——一蓑烟雨任平生
  2. 链接h5代码_H5中播放的视频如何有效的进行视频加密
  3. 基于tp5的微信app支付及回调
  4. CAD怎么计算面积?cad计算面积快捷键是什么?
  5. SolidWorks2019安装教程
  6. 2020年电力电缆试题及答案及电力电缆考试平台
  7. 前端面试大全(HTMLCSSJS基础)
  8. c++语言仓库管理系统,课内资源 - 利用C++实现仓库管理系统
  9. java inflater_Deflater与Inflater的压缩与解压缩
  10. 城市化,给我们的心理健康与行为带来了什么?