记录编号 406157 评测结果 AAAAAAAAAA
题目名称 [HZOI 2016]艾米利亚的求助 最终得分 100
用户昵称 Gravatarsxysxy 是否通过 通过
代码语言 C++ 运行时间 0.932 s
提交时间 2017-05-17 23:16:43 内存使用 0.29 MiB
显示代码纯文本
#include <cstdio>
#include <cmath>
using namespace std;
typedef long long LL;
LL sum(LL n){
  int m = (int)(sqrt(n)+0.5);
  long long cnt = 0;
  for(int i = 1; i <= m; i++){
    if(n%i == 0){
      cnt += i;
      if(i*i != n)cnt += n/i;
      else break;
    }
  }
  return cnt;
}
LL phi(LL n){
  int m = (int)(sqrt(n)+0.5);
  long long ans = n;
  for(int i = 2; i <= m; i++){
    if(n%i == 0){
      ans = ans/i*(i-1);
      while(n%i == 0)n /= i;
      if(n == 1)break;
    }
  }
  if(n > 1)ans = ans/n*(n-1);
  return ans;
}
int main(){
  freopen("aimiliyadehelp.in", "r", stdin);
  freopen("aimiliyadehelp.out", "w", stdout);
  LL n; scanf("%lld", &n);
  printf("%lld\n", sum(n)-phi(n));
  return 0;
}