王烯出的题:数论(素数筛选)
来源:互联网 发布:mac u盘 抹掉进程失败 编辑:程序博客网 时间:2024/06/03 22:42
Problem D: 属于ACMer的游戏 猜素数
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 56 Solved: 15
[Submit][Status][Web Board]
Description
ACM实验室的众大神们喜欢聚餐大家一起HAPPY 尤其卢学长喜欢请大家HAPPY,但是卢学长请吃饭有一个习惯,大家要一起玩一个热身游戏,猜素数.
游戏规则如下:
正常人的版本是这样:比如卢学长先约定一个数,并约定一个范围比如1~1000,然后大家开始猜范围内的数,逐渐缩小范围,比如唐学长是卢学长的下一个位置的人,然后唐学长猜了550,如果和卢学长约定的数一样则唐学长接受惩罚,否则缩小范围如果约定的数大于550则范围变成550~1000,否则变成1~550.同理挨个猜数,直到有人接受惩罚。
但是ACM实验室的众大神的版本作了一点点改进,即事先约定的数和后面猜的数必须是素数 这可难为了冷神,冷神不知道一共会有多少素数。所以只能拜托机智的众学弟学妹了。
输入两个数a,b(1<=a,b<=10^7)判断a,b范围内(包括a,b)会有多少素数呢?
数据不保证a小于b。
Input
a,b两个数(1<=a,b<=10^7)
Output
t 表示范围内有多少个素数
Sample Input
1 10
15 20
2 300
Sample Output
4
2
62
简单的素数筛选题目,好久没写了。。。
要用到打表保存结果的思想
代码如下:
#include <cstdio>#include <cstring>#include <algorithm>#define MAXN 10001000using namespace std; int ans[MAXN+10];bool vis[MAXN+10]; void init() { for(int i=2; i*i<MAXN; ++i) { if(!vis[i]) { for(int j=i*i; j<MAXN; j+=i) { vis[j] = true; } } } ans[0] = ans[1] = 0; for(int i=2; i<MAXN; ++i) { ans[i] = ans[i-1]; if(!vis[i]) ++ans[i]; }} int main(void) { init(); int a, b, x, y; while(scanf("%d%d", &a, &b) != EOF) { printf("%d\n", ans[max(a, b)]-ans[min(a, b)-1]); } return 0;}
0 0
- 王烯出的题:数论(素数筛选)
- 数论 素数筛选法与整数的素因子分解
- 数论--素数筛选法与整数的素因子分解
- 筛选素数空间压缩(数论)&& Double Happiness
- HDU2303(数论)大整数求余+素数筛选
- 素数的筛选
- 素数的线性筛选
- 素数筛选的模板
- 数论——素数筛选法与整数的素因子分解
- 素数筛选法 (求1~n的素数)
- 素数筛选(模板)
- hdu1164(素数筛选)
- 素数筛选(转载)
- 素数及素数筛选算法训练基础题(一)
- 素数判断(数论)
- 简单素数筛选法介绍(数论初步) By ACReaper
- 线性筛选素数(欧拉筛选)
- POJ2262 素数判定,万能的素数筛选
- Spring切入点表达式常用写法
- 海量数据处理,文件切割
- 403 Forbidden
- linux查看系统属性
- 字典树 python实现
- 王烯出的题:数论(素数筛选)
- Java图片去重
- .net随手记----js引用无效
- sqlserver 中EXEC和sp_executesql使用介绍
- 阿里靠增发股份用钱或难挡离职潮!
- 杭电4324 Triangle LOVE(拓扑排序)
- A35号上机作业
- 新的开始,学习记录
- 利用mkcd制作AIX系统恢复光盘