POJ3978 Primes【素数筛选+前缀和】
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【素数筛选+前缀和】相关推荐
- UVALive6050 Primes【素数筛选+前缀和】
Primes Let m and n be two integers, 2 ≤ m < n ≤ 10000000. Consider the following set: P rime(m, n ...
- openoj的一个小比赛(F题解题报告)poj3978(dp+素数筛选)
http://openoj.awaysoft.com:8080/judge/contest/view.action?cid=47#problem/F 一个素数帅选法的题目,才开始直接就套模板结构tle ...
- python使用集合实现筛选法求素数-python素数筛选法浅析
原理: 素数,指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数.在加密应用中起重要的位置,比如广为人知的RSA算法中,就是基于大整数的因式分解难题,寻找两个超大的素数然后相乘作 ...
- 素数筛选法(埃氏筛 欧拉筛)
质数筛选法 文章目录 质数筛选法 前言 一.埃氏筛 O(nloglogn)O(nloglogn)O(nloglogn) 二.欧拉筛O(n)O(n)O(n) 总结 前言 当需要大范围内的素数时,例如1e ...
- Python:实现prime sieve eratosthenes埃拉托斯特尼素数筛选法算法(附完整源码)
Python:实现prime sieve eratosthenes埃拉托斯特尼素数筛选法算法 # flake8: noqa def prime_sieve_eratosthenes(num):prim ...
- 素数筛选以及优化分析
素数筛选法的思想:对于不超过N的每个正整数,删除2P,3P,4P--,当处理完所有数之后,还没有被删除的就是素数. 按照上述思想写成的简单筛选法代码如下: memset(vis,o,sizeof(vi ...
- C语言素数筛选法(prime seive) 算法(附完整源码)
素数筛选prime seive算法 C语言素数筛选prime seive算法完整源码(定义,实现,main函数测试) C语言素数筛选prime seive算法完整源码(定义,实现,main函数测试) ...
- 因子和(类素数筛选法)
(忙着A题,总结会慢慢跟上~) 1409: 因子和 Time Limit: 1 Sec Memory Limit: 128 MB [Submit][Status][Web Board] Descrip ...
- 51nod 1536不一样的猜数游戏 思路:O(n)素数筛选法。同Codeforces 576A Vasya and Petya‘s Game。
废话不多说,先上题目. 51nod Codeforces 两个其实是一个意思,看51nod题目就讲的很清楚了,题意不再赘述. 直接讲我的分析过程:刚开始拿到手有点蒙蔽,看起来很难,然后......然后 ...
最新文章
- 中文版开源!这或许是最经典的Python编程教材
- 探测电磁波就能揪出恶意软件,网友:搁这给电脑把脉呢?
- java script jquery_Java Script 学习笔记 -- jQuery
- 计算机二级java试题_计算机二级考试《Java》试题及答案
- java在原数组中追加一个元素
- Android 内存监测工具 DDMS -- Heap
- Silverlight开源项目与第三方控件收集
- Java TCP小结
- 软件 规则引擎_如何设计软件规则引擎
- 《移动端UI框架》Vant
- Android连续点击事件的实现
- ppt 如何加背景音乐
- lixnu 启动php,好奇怪的代码
- 刚入行java程序员VS 3年以上java程序员,太形象了,哈哈哈~·~
- Centos7安装Python
- 周长最短面积最大_图说、故事趣说“周长一定时,何种封闭的平面图形面积最大?”...
- Qt 之 QNetworkProxy(网络代理)
- 换零钱程序c语言,《SICP》换零钱的递归法与迭代法
- 【泰迪杯-数据分析-1】matplotlib
- nginx菜鸟教程二
热门文章
- python登录网页版易信_易信网页版下载|易信网页版登陆客户端官方最新版 2.1.1103.0 - 系统天堂...
- linux分屏显示文件行数,linux常用命令集合1
- Doris FE配置参数(全面)
- Doris之BE的所有配置项(全面)
- mysql的压缩包,mysql 压缩包安装
- python set_Python的set集合详解
- 文本编辑器查看 cprintf颜色_做生信,你需要一款好用的文本编辑器
- 克里金插值c程序_C罗游艇晒太阳,坐下也有六块腹肌,乔治娜骄傲秀无名指上鸽子蛋...
- 剑指offer面试题50. 第一个只出现一次的字符(哈希表)
- Matlab编程与C编程的不同