您的位置:首页 > 其它

BZOJ1408:Robot(数论)

2018-03-07 21:36 260 查看
题面

题意:以分解质因数形式给出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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: