sb题写挂还有资格参加省选?
写挂10+次,莫名RE,简直崩溃
最后选择了抄hzwer的代码
这题是一个裸的欧拉函数
把原题中的式子拆一下就行了
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | #include<cstdio> #include<cmath> #include<algorithm> using namespace std; long long n,ans=0; long long phiQ( long long x) { long long t=x; for ( long long i=2;i*i<=n;i++) if (x%i==0) { t=t/i*(i-1); while (x%i==0)x/=i; } if (x>1)t=t/x*(x-1); return t; } int main(){ freopen ( "2705.in" , "r" ,stdin); freopen ( "2705.out" , "w" ,stdout); scanf ( "%lld" ,&n); for ( long long i=1;i*i<=n;i++){ if (n%i==0){ ans+=( long long )i*phiQ(n/i); if (i*i<n)ans+=( long long )(n/i)*phiQ(i); } } printf ( "%lld\n" ,ans); return 0; } |