Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- long long f(int n)
- {
- int*a=calloc(n+1,sizeof(int));
- long long s=0;
- int d=2;
- int k=0;
- long long p=d;
- while(n/p!=0)
- {
- k+=n/p;
- p*=d;
- }
- s=s+k*d;
- long long x=d;
- while(x<=n)
- {
- a[x]=1;
- x+=d;
- }
- for(d=3; d<=n; d+=2)
- {
- if(a[d]==0)
- {
- k=0;
- p=d;
- while(n/p)
- {
- k+=n/p;
- p*=d;
- }
- s=s+k*d;
- if(d*d<n)
- {
- x=(long long)d*d;
- while(x<=n)
- {
- a[x]=1;
- x+=d;
- }
- }
- }
- }
- free(a);
- return s;
- }
- int main()
- {
- int n;
- scanf("%d",&n);
- printf("%lld",f(n));
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment