题面
题意:以分解质因数形式给出m
考虑m的所有无平方因子的约数d
对有偶数个质因子的d和有奇数个质因子的d
分别求它们
φ
φ
的和
(不会说了,反正很简单)
φ(p)=p−1
φ
(
p
)
=
p
−
1
一算下去就好了
#include <iostream>
#include <fstream>
#include <algorithm>
#include <cmath>
#include <ctime>
#include <cstdio>
#include <cstdlib>
#include <cstring>
using namespace std;
#define mmst(a, b) memset(a, b, sizeof(a))
#define mmcp(a, b) memcpy(a, b, sizeof(b))
typedef long long LL;
const int N=10010;
const int mo=10000;
int cheng(int a,int b)
{
int res=1;
for(;b;b>>=1,a=a*a%mo)
if(b&1)
res=res*a%mo;
return res;
}
int n,m;
int p,e;
int ans1,ans2;
int main()
{
cin>>n;
m=1;
for(int i=1;i<=n;i++)
{
scanf("%d%d",&p,&e);
m=m*cheng(p,e)%mo;
if(p==2)
continue;
int hy=(ans1+ans2*(p-1))%mo;
ans2=(ans2+(ans1+1)*(p-1))%mo;
ans1=hy;
}
cout<<ans1<<endl<<ans2<<endl<<(m-ans1-ans2+19999)%mo<<endl;
return 0;
}