用筛选法求1—100之内的素数(此法难度的话,方法可以不界定:能完成求1—100之内的素数即可)。
 
在一张纸上写上1到100全部整数,然后逐个判断它们是否是素数,找出一个非素数,就把它挖掉,最后剩下的就是素数。
 
具体做法如下:
  先将1挖掉(因为1不是素数,可将该数置为0)。
  用2去除它后面的各个数,把能被2整除的数挖掉,即把2的倍数挖掉。
  用3去除它后面的各数,把3的倍数挖掉。
  分别用4、5各数作为除数去除这些数以后的各数。
  这个过程一直进行到在除数后面的数已全被挖掉为止。
  例如找1~50的素数,要一直进行到除数为49为止(事实上,可以简化,如果需要找1~n范围内素数表,只需进行到除数为n^2(根号n),取其整数即可。例如对1~50,只需进行到将50^2作为除数即可。)
  如上算法可表示为:挖去1;  a[1]=0用刚才被挖去的数的下一个数p去除p后面各数,把p的倍数挖掉;
  for(i=2;i<=sqrt(100);i++){  
    for(j=i+1;j<=100;j++)
              if(a[j]%a[i]==0)
                 a[j]=0;
        }
检查p是否小于n^2的整数部分(如果n=1000,则检查p),如果是,则返回(2)继续执行,否则就结束;<4>纸上剩下的数就是素数。
#include<stdio.h>
#include<math.h>
int main()
{
//cout<<"100以内的全部素数:"<<endl;
printf("100以内的全部素数: \n"); int i,j,k;
int a[];
for(i=;i<=;i++) a[i]=i;
a[]=; //先挖掉a[1] for(i=;i<sqrt();i++){
for(j=i+;j<=;j++){
if(a[i]!=&&a[j]!=){
if(a[j]%a[i]==){
a[j]=; //把非素数挖掉,不是素数的都赋值为0
}
}
}
}
printf("\n");
for(i=,k=;i<=;i++){
if(a[i]!=){ //选出值不为0的数 即素数
//cout<<" "<<a[i];
printf("%d ",a[i]);
k++;
} if(k==){ //输出10个数后换行
printf("\n");
k=;
}
}
printf("\n"); return ;
}
 

埃拉托色尼(Eratosthenes)筛法的更多相关文章

  1. POJ 2262 Goldbach's Conjecture(Eratosthenes筛法)

    http://poj.org/problem?id=2262 题意: 哥德巴赫猜想,把一个数用两个奇素数表示出来. 思路:先用Eratosthenes筛法打个素数表,之后枚举即可. #include& ...

  2. 数论初步——Eratosthenes筛法

    具体内容见紫书p312-p313 一.用Eratosthenes筛法构造1~n的素数表 思想:对于不超过n的每个非负整数p,删除2p,3p,4p…,当处理完所有的数后,还没有被删除的就是素数. 代码: ...

  3. 素数筛法(Eratosthenes筛法)

    介绍 Eratosthenes筛法,又名埃氏筛法,对于求1~n区间内的素数,时间复杂度为n log n,对于10^6^ 以内的数比较合适,再超出此范围的就不建议用该方法了. 筛法的思想特别简单: 对于 ...

  4. C语言程序设计100例之(12):Eratosthenes筛法求质数

    例12   Eratosthenes筛法求质数 问题描述 Eratosthenes筛法的基本思想是:把某范围内的自然数从小到大依次排列好.宣布1不是质数,把它去掉:然后从余下的数中取出最小的数,宣布它 ...

  5. 素数筛 : Eratosthenes 筛法, 线性筛法

    这是两种简单的素数筛法, 好不容易理解了以后写篇博客加深下记忆 首先, 这两种算法用于解决的问题是 : 求小于n的所有素数 ( 个数 ) 比如 这道题 在不了解这两个素数筛算法的同学, 可能会这么写一 ...

  6. 用C++实现的增强Eratosthenes筛法程序

    运行示例 PS H:\Read\num\x64\Release> .\eSievePro Eratosthenes sieve: a method to find out all primes ...

  7. 用C++实现的Eratosthenes筛法程序

    运行示例 只输出素数总数的运行示例 PS H:\Read\num\x64\Release> .\esieve.exe Eratosthenes sieve: a method to find o ...

  8. 由Eratosthenes筛法演变出的一种素数新筛法

    这两天和walls老师交流讨论了一个中学竞赛题,我把原题稍作增强和变形,得到如下一个题: 从105到204这100个数中至少要选取多少个数才能保证选出的数中必有两个不是互素的? 我们知道最小的几个素数 ...

  9. HDU 1216 Assistance Required 埃拉托色尼色筛法

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1216 思路:色筛法 代码(1): #include<iostream>//-------- ...

随机推荐

  1. 第二十篇ORM查询与SQL语句

    ORM查询与SQL语句 多表操作 创建模型 实例:我们来假定下面这些概念,字段和关系 作者模型:一个作者有姓名和年龄. 作者详细模型:把作者的详情放到详情表,包含生日,手机号,家庭住址等信息.作者详情 ...

  2. sprngmvc+restFul 请求报错:404

    服务端代码 control类 @RequestMapping(value="getUser",method = RequestMethod.POST) @ResponseBody ...

  3. 关于SI4432的问题简单讲解

    对于SX1278 和SI4432的对比性,下面为大家展示对比参数: 由此可以看出的SI4432虽然跟SX1278有部分地方不同,但是整体来说还是差别不大,各有各的长处和短处,性价比上个人还是觉得SI4 ...

  4. idea修改web项目的访问路径

    转 新建好了项目发现项目只能以localhost:8080这样的访问路径访问到主页,也就是index.jsp 那么之前我用eclipse新建的项目都是localhost:8080/xxx(项目名称)来 ...

  5. React之Redux知识点补充

    一. reducer纯函数方便自动化测试 二.

  6. [CISCN2019 总决赛 Day2 Web1]Easyweb

    0x00 知识点 1:备份文件泄露 2:SQL注入 3:php短标签 短标签<? ?>需要php.ini开启short_open_tag = On,但<?= ?>不受该条控制. ...

  7. Neo4j--windows下安装neo4j

    参考 https://www.cnblogs.com/ljhdo/archive/2017/05/19/5521577.html 安装包下载 https://neo4j.com/download-ce ...

  8. solr8.0.0基本安装和在springboot中的基本使用(win10)

    1.下载solr 下载地址:http://archive.apache.org/dist/lucene/solr/ 该地址可以也可以下载以前的版本,我这边下载的solr-8.0.0.zip版本.下载完 ...

  9. Tomcat启动失败原因: More than one fragment with the name [spring_web] was found. 解决

    将一个eclipse上搭建好的项目移到idea开发时遇到的问题,tomcat启动时报了3个错误 -Nov- :: ms -Nov- ::)-127.0.0.1] org.apache.tomcat.u ...

  10. 通过Android的API对Sqlite数据库进行操作

    一.增删改查 增 改 查 删 这是删除之前 删除三条 Dao.java package com.example.databasedemo; import android.content.Content ...