紫书 习题 10-7 UVa 10539(long long + 素数筛)
注意要开long long
如果int * int会炸
那么久改成long long * int
#include<cstdio>
#include<vector>
#include<cstring>
#define REP(i, a, b) for(int i = (a); i < (b); i++)
using namespace std;typedef long long ll;
const int MAXN = 1123456;
bool is_prime[MAXN];
vector<int> prime;void init()
{memset(is_prime, true, sizeof(is_prime));is_prime[0] = is_prime[1] = false;REP(i, 2, MAXN){if(is_prime[i]) prime.push_back(i);REP(j, 0, prime.size()){if(i * prime[j] >= MAXN) break;is_prime[i * prime[j]] = false;if(i % prime[j] == 0) break;}}
}int sum(ll x, int p)
{int ret = 0;ll t = (ll)p * p; //注意这里 while(t <= x){ret++;t *= p;}return ret;
}int f(ll x)
{int ret = 0;REP(i, 0, prime.size()){if((ll)prime[i] * prime[i] > x) break; //注意这里 ret += sum(x, prime[i]);}return ret;
}int main()
{init();int n;ll a, b;scanf("%d", &n);REP(i, 0, n){scanf("%lld%lld", &a, &b);printf("%d\n", f(b) - f(a - 1));}return 0;
}
转载于:https://www.cnblogs.com/sugewud/p/9819484.html
紫书 习题 10-7 UVa 10539(long long + 素数筛)相关推荐
- 紫书 习题 10-17 UVa 11105 (筛法)
类似于素数筛的思想去做,不然暴力会超时而且还要判重 #include<cstdio> #include<cstring> #include<vector> #def ...
- 紫书 习题 10-44 UVa 11246 ( 容斥原理)
把k的倍数的删去(k, 2k, 3k--),但是k^2不应该删去,因为k已经删去,所以不存在某个数乘上k之后为k^2 所以k^2可以留下,然后因为有k^2,所以k^3就是k^2的k倍,所以k^3要删去 ...
- 紫书 习题7-14 UVa 307(暴搜+剪枝)
这道题一开始我想的是在排序之后只在头和尾往中间靠近来找木块, 然后就WA, 事实证明这种方法是错误的. 然后参考了别人的博客.发现别人是直接暴搜, 但是加了很多剪枝, 所以不会超时. 我也想过这个做法 ...
- 紫书 习题 10-20 UVa 1648 (推公式)
设一次上去a层,一次下去b层,有x次上去,有(n-x)次下去 则ax - (n-x)b >= 1 x >= (nb+1) / (a+b) 如果可以整除, x = (nb+1) / (a+b ...
- 紫书 习题8-14 UVa 1616(二分+小数化分数+精度)
参考了https://www.cnblogs.com/dwtfukgv/p/5645446.html (1)直接二分答案.说实话我没有想到, 一开始以为是贪心, 以某种策略能得到最优解. 但是想了很久 ...
- 紫书 习题 8-15 UVa 1617 (贪心)
先排序, 然后每个线段先放右端点, 然后往下放, 如果不能放就整体往左移动, 当不能往左移动的时候就ans++ 开始下一个整块.判断能不能向左移动要用一个变量储存每个已经放了的区间中线段与左端点距离的 ...
- 紫书 习题 11-12 UVa 1665 (并查集维护联通分量)
这道题要逆向思维 反过来从大到小枚举, 就是在矩阵中一点一点加进去数字,这样比较 好操作, 如果正着做就要一点一点删除数字, 不好做. 我们需要在这个过程中维护联通块的个数, 这里用到了并查集. 首先 ...
- 紫书搜索 例题7-10 UVA - 11212 Editing a Book 迭代加深搜索 IDA*
题目链接: https://vjudge.net/problem/UVA-11212 题意: 题解: IDA*,每次改变深度上限去剪枝 代码: 1 #include <bits/stdc++.h ...
- 紫书搜索 例题7-5 UVA - 129 Krypton Factor
题目链接: https://vjudge.net/problem/UVA-129 题意: 题解: 代码: #include <bits/stdc++.h> using namespace ...
最新文章
- JVM_05 执行引擎(Execution Engine)
- PHP——Array to string conversion 解决方案
- python用户输入一行字符串_python字符串练习
- 牛客 - 小A的回文串(Manacher模板题)
- ABAP Netweaver和Cloud Foundry上的环境变量Environment Variable
- html中两个div垂直居中对齐,在div中垂直居中的两个元素
- ie浏览器样式兼容写法_IE浏览器兼容问题-----html和css的兼容写法
- C# DataTable Compute方法的使用
- [转载]返璞归真 asp.net mvc (10) - asp.net mvc 4.0 新特性之 Web API
- 编程语言EF速度测试(4):nsieve-bits
- hurst指数matlab代码_Matlab 简介
- C语言 · 进制转换
- 频率泄露以及加窗原理
- dnf最新地图编号2020_《DNF》2020搬砖地图有哪些
- 德国华人餐饮外卖的春天?
- iphone和mac互传文件_苹果手机与电脑怎么互传文件 iphone手机数据同步方法
- SLF4J--日志门面担当
- 110报警声+单片机c语言,基于单片机的红外报警系统设计毕业论文.docx
- 除法的向上取整和向下取整
- Tensorflow物体检测(Object Detection)