记录编号 360188 评测结果 AAAAAAAAAA
题目名称 [HZOI 2016]艾米利亚的求助 最终得分 100
用户昵称 GravatarGo灬Fire 是否通过 通过
代码语言 C++ 运行时间 0.916 s
提交时间 2016-12-27 18:37:05 内存使用 0.31 MiB
显示代码纯文本
#include <cmath>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
const int maxn=1010;
#define LL unsigned long long
#define Inf 2e9
LL Phi(LL x){
	LL ans=x;
	for(LL i=2;i*i<=x;i++){
	    if(x%i==0){
			ans=ans/i*(i-1);
			while(x%i==0)x/=i;
	    }
	}
	if(x>1)ans=ans/x*(x-1);
	return ans;
}
LL F(LL x){
	if(x==1)return 0;
	LL ans=1;
	for(LL i=2;i*i<=x;i++){
		if(x%i==0){
			LL num=0;
			while(x%i==0)x/=i,num++;
			ans*=(num+1);
		}
	}
	if(x>1)ans*=2;
	return ans;
}
void Init();

int main(){
	freopen("aimiliyadehelp.in","r",stdin);freopen("aimiliyadehelp.out","w",stdout);
    Init();
    getchar();getchar();
    return 0;
}
void Init(){
	LL n;scanf("%llu",&n);
	LL ans=0;
	for(LL i=1;i*i<=n;i++){
		if(n%i==0){
			ans+=Phi(n/i)*F(i);
			if(i*i!=n)ans+=Phi(i)*F(n/i);
		}
	}
	printf("%llu\n",ans);
}