POJ 2773 Happy 2006 模的性质
POJ 2773
对于给出的整数m,找到按升序排列的第个和m互素的整数。
与互素的数对取模具有周期性:如果小于且与互素的数有个,其中第个是,则第个与互素的数是。
#include<bits/stdc++.h>
#define ll long long
#define Max(a,b) ((a) > (b) ? (a) : (b))
#define INF 0x3f3f3f3f
const int N = 1e6+10;
const int mod = 1e9+7;
ll gcd(ll p,ll q){return q==0?p:gcd(q,p%q);}
using namespace std;
int m,k;
int prime[N];
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
while(scanf("%d%d",&m,&k)!=EOF) {
int n=0;
for(int i=1;i<=m;i++)
if(gcd(i,m)==1) prime[++n]=i;
if(k%n==0)
printf("%d\n",(k/n-1)*m + prime[n]);
else
printf("%d\n",(k/n)*m + prime[k%n]);
}
return 0;
}
浙公网安备 33010602011771号