用筛选法求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. ACM-DFS Template

    自己写的DFSTemplate: // DFS_Template.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" //DFS的思想是:一直向 ...

  2. java菜鸟第一天

  3. tab选项卡,带自动播放

    <!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content ...

  4. java课程之团队开发冲刺阶段2.6

    总结昨天进度: 1.总体的思路已经完成,代码也差不多了,只剩下对闹钟activity的设置 遇到的困难: 1.在设置震动的时候,对方法有点不太理解,所以使用的时候产生了错误,没有达到预期的效果 今天的 ...

  5. sqli-labs注入lesson1-2闯关秘籍

    ·lesson1 1.判断是否存在注入,并判断注入的类型 其实根据第一关提示 判断注入类型 输入下面的语句进行测试: ?id= 返回界面如下图:说明存在 字符型注入 2. 使用order by 猜测S ...

  6. React + umi +antd+antv/g6 实现力图

    官方示例效果:http://antv.alipay.com/zh-cn/g6/2.x/demo/net/2017-link-data.html 改编效果: 实现步骤: 环境:nodejs.yarn/n ...

  7. 四、SAP中转义字符的使用和不同数据类型所占长度不同

    一.代码如下: 效果如下,注意看,数字类型占用了10个位置:

  8. HDU—4699 Editor 双向链表+子集和

    惨.今天聪哥选了2013 多校10做训练,结果一题都没做出来.这个题目是数据结构,正好是我强项 如果只是插入 删除 光标左右移动,那都小菜,用链表全解决,关键是那个Q k 要求 a1到aq的连续子序列 ...

  9. XXE--XML外部实体注入漏洞

    XXE漏洞原理 XXE漏洞全称XML External Entity Injection 即xml外部实体注入漏洞,XXE漏洞发生在应用程序解析XML输入时,没有禁止外部实体的加载,导致可加载恶意外部 ...

  10. 2020/1/30 PHP代码审计之文件上传漏洞

    0x00 漏洞简介 文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力.这种攻击是最为直接和有效的,"文件上传"本身是没有问题,有问题的是 ...