HDU 2824The Euler function

来源:互联网 发布:数据库系统的应用 编辑:程序博客网 时间:2024/06/06 00:20

Description

The Euler function phi is an important kind of function in number theory, (n) represents the amount of the numbers which are smaller than n and coprime to n, and this function has a lot of beautiful characteristics. Here comes a very easy question: suppose you are given a, b, try to calculate (a)+ (a+1)+....+ (b)

Input

There are several test cases. Each line has two integers a, b (2<a<b<3000000).

Output

Output the result of (a)+ (a+1)+....+ (b)

Sample Input

3 100

Sample Output

3042


没什么好说的,线性筛打完每次b-a求解就行,统计前缀和会炸内存。

#include<set>#include<map>#include<ctime>#include<cmath>#include<stack>#include<queue>#include<bitset>#include<cstdio>#include<string>#include<cstring>#include<iostream>#include<algorithm>#include<functional>#define rep(i,j,k) for (int i = j; i <= k; i++)#define per(i,j,k) for (int i = j; i >= k; i--)#define loop(i,j,k) for (int i = j;i != -1; i = k[i])#define lson x << 1, l, mid#define rson x << 1 | 1, mid + 1, r#define ff first#define ss second#define mp(i,j) make_pair(i,j)#define pb push_back#define pii pair<int,LL>#define inone(x) scanf("%d", &x);#define intwo(x,y) scanf("%d%d", &x, &y);using namespace std;typedef unsigned long long LL;const int low(int x) { return x&-x; }const double eps = 1e-4;const int INF = 0x7FFFFFFF;const int mod = 1e9 + 7;const int N = 3e6 + 10;int n, m;bool f[N];int p[220000], phi[N], t = 0;void init(){phi[1] = f[1] = 1;rep(i, 2, N - 1){if (!f[i]) p[t++] = i, phi[i] = i - 1;for (int j = 0, k; j < t&&p[j] * i < N; j++){f[k = p[j] * i] = 1;phi[k] = phi[i] * (p[j] - 1);if (i%p[j] == 0) { phi[k] = phi[i] * p[j]; break; }}}}int main(){init();while (scanf("%d%d",&n, &m) != EOF){LL ans = 0;rep(i, n, m) ans += phi[i];printf("%lld\n", ans);}return 0;}


0 0
原创粉丝点击