Primes

Time Limit: 1000MS   Memory Limit: 65536K
Total Submissions: 4075   Accepted: 1579

Description

A pretty straight forward task, calculate the number of primes between 2 integers.

Given 2 integers A ≤ B < 105 what’s the number of primes in range from A to B inclusive.

Note: A prime number is a positive integer greater than 1 and is divisible by 1 and itself only. For N to be prime it is enough to test the divisibility of numbers less than or equal to square root of N.

Input

As many as 1000 lines, each line contains 2 integers A and B separated by a space. Input is terminated when A = B = -1 (Do not process this line).

Output

For every line in input – except for the last line where A = B = -1 - print the number of prime numbers between A and B inclusive.

Sample Input

0 9999
1 5
-1 -1

Sample Output

1229
3

Source

Seventh ACM Egyptian National Programming Contest

问题链接:POJ3978 Primes。

题意简述:参见上文。

问题分析:用Eratosthenes筛选法筛选素数,然后计算素数数量的前缀和,根据输入的数据范围做个减法即可。

程序说明:(略)

参考链接:(略)

AC的C++语言程序如下:

/* POJ3978 Primes */#include <iostream>
#include <string.h>
#include <math.h>using namespace std;const int N = 100000;
int prefixsum[N+1];// Eratosthenes筛选法+计算前缀和
void sieveofe(int n)
{memset(prefixsum, 0, sizeof(prefixsum));prefixsum[0] = prefixsum[1] = 1;for(int i=2; i<=sqrt(n); i++) {if(!prefixsum[i]) {for(int j=i*i; j<=n; j+=i)  //筛选prefixsum[j] = 1;}}prefixsum[0] = 0;for(int i=1; i<=n; i++)if(prefixsum[i])prefixsum[i] = prefixsum[i - 1];elseprefixsum[i] = prefixsum[i - 1] + 1;
}int main()
{sieveofe(N);int a, b;while(cin >> a >> b && (a != -1 || b != -1))cout << prefixsum[b] - prefixsum[(a - 1 < 0) ? 0 : a - 1] << endl;return 0;
}

POJ3978 Primes【素数筛选+前缀和】相关推荐

  1. UVALive6050 Primes【素数筛选+前缀和】

    Primes Let m and n be two integers, 2 ≤ m < n ≤ 10000000. Consider the following set: P rime(m, n ...

  2. openoj的一个小比赛(F题解题报告)poj3978(dp+素数筛选)

    http://openoj.awaysoft.com:8080/judge/contest/view.action?cid=47#problem/F 一个素数帅选法的题目,才开始直接就套模板结构tle ...

  3. python使用集合实现筛选法求素数-python素数筛选法浅析

    原理: 素数,指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数.在加密应用中起重要的位置,比如广为人知的RSA算法中,就是基于大整数的因式分解难题,寻找两个超大的素数然后相乘作 ...

  4. 素数筛选法(埃氏筛 欧拉筛)

    质数筛选法 文章目录 质数筛选法 前言 一.埃氏筛 O(nloglogn)O(nloglogn)O(nloglogn) 二.欧拉筛O(n)O(n)O(n) 总结 前言 当需要大范围内的素数时,例如1e ...

  5. Python:实现prime sieve eratosthenes埃拉托斯特尼素数筛选法算法(附完整源码)

    Python:实现prime sieve eratosthenes埃拉托斯特尼素数筛选法算法 # flake8: noqa def prime_sieve_eratosthenes(num):prim ...

  6. 素数筛选以及优化分析

    素数筛选法的思想:对于不超过N的每个正整数,删除2P,3P,4P--,当处理完所有数之后,还没有被删除的就是素数. 按照上述思想写成的简单筛选法代码如下: memset(vis,o,sizeof(vi ...

  7. C语言素数筛选法(prime seive) 算法(附完整源码)

    素数筛选prime seive算法 C语言素数筛选prime seive算法完整源码(定义,实现,main函数测试) C语言素数筛选prime seive算法完整源码(定义,实现,main函数测试) ...

  8. 因子和(类素数筛选法)

    (忙着A题,总结会慢慢跟上~) 1409: 因子和 Time Limit: 1 Sec Memory Limit: 128 MB [Submit][Status][Web Board] Descrip ...

  9. 51nod 1536不一样的猜数游戏 思路:O(n)素数筛选法。同Codeforces 576A Vasya and Petya‘s Game。

    废话不多说,先上题目. 51nod Codeforces 两个其实是一个意思,看51nod题目就讲的很清楚了,题意不再赘述. 直接讲我的分析过程:刚开始拿到手有点蒙蔽,看起来很难,然后......然后 ...

最新文章

  1. 中文版开源!这或许是最经典的Python编程教材
  2. 探测电磁波就能揪出恶意软件,网友:搁这给电脑把脉呢?
  3. java script jquery_Java Script 学习笔记 -- jQuery
  4. 计算机二级java试题_计算机二级考试《Java》试题及答案
  5. java在原数组中追加一个元素
  6. Android 内存监测工具 DDMS -- Heap
  7. Silverlight开源项目与第三方控件收集
  8. Java TCP小结
  9. 软件 规则引擎_如何设计软件规则引擎
  10. 《移动端UI框架》Vant
  11. Android连续点击事件的实现
  12. ppt 如何加背景音乐
  13. lixnu 启动php,好奇怪的代码
  14. 刚入行java程序员VS 3年以上java程序员,太形象了,哈哈哈~·~
  15. Centos7安装Python
  16. 周长最短面积最大_图说、故事趣说“周长一定时,何种封闭的平面图形面积最大?”...
  17. Qt 之 QNetworkProxy(网络代理)
  18. 换零钱程序c语言,《SICP》换零钱的递归法与迭代法
  19. 【泰迪杯-数据分析-1】matplotlib
  20. nginx菜鸟教程二

热门文章

  1. python登录网页版易信_易信网页版下载|易信网页版登陆客户端官方最新版 2.1.1103.0 - 系统天堂...
  2. linux分屏显示文件行数,linux常用命令集合1
  3. Doris FE配置参数(全面)
  4. Doris之BE的所有配置项(全面)
  5. mysql的压缩包,mysql 压缩包安装
  6. python set_Python的set集合详解
  7. 文本编辑器查看 cprintf颜色_做生信,你需要一款好用的文本编辑器
  8. 克里金插值c程序_C罗游艇晒太阳,坐下也有六块腹肌,乔治娜骄傲秀无名指上鸽子蛋...
  9. 剑指offer面试题50. 第一个只出现一次的字符(哈希表)
  10. Matlab编程与C编程的不同