The Euler functionTime
limit:2000/1000 MS (java/others) Memory limit:32768/32768 K (java/others)
Total submission (s): 4548 Accepted Submission (s): 1895
Problem DescriptionThe Euler function phi is a important kind of function in number theory, (n) represents the amount of The numbers which is smaller than N and coprime to n, and this function have a lot of beautiful characteristics. Here comes a very easy question:suppose is given a, B, try to calculate (a) + (a+1) +....+ (b)
Inputthere is several test cases. Each line has a integers a, b (2<a<b<3000000).
Outputoutput The result of (a) + (a+1) +....+ (b)
Sample Input
3 100
Sample Output
3042
Code:
#include <stdio.h> #define MAX 3000010long long euler[max];int init () {int i,j;for (i=2;i<max;i++) {if (!euler[i] {for (j=i;j<max;j+=i) {if (!euler[j]) euler[j]=j;euler[j]=euler[j]/i* (i-1);}} EULER[I]+=EULER[I-1];}} int main () {int a,b;init (), while (scanf ("%d%d", &a,&b)!=eof) {printf ("%lld\n", Euler[b]-euler[a-1]);} return 0;}
Copyright NOTICE: This article for Bo Master original article, without Bo Master permission not reproduced.
Hdoj 2824 the Euler function