【题解】转圈题解
#include<iostream>
using namespace std;
int gcd(int a,int b){
return b==0?a:gcd(b,a%b);
}
int main(){
int n,m,k,x,a;
cin>>n>>m>>k>>x;
a = n*m/gcd(n,m)/m;
int s = 1,h = 10;
for(;k>0;k>>=1){
if(k&1){s = s*h%a;}
h = h*h%a;
}
cout<< (s*m+x)%n;
return 0;
}
using namespace std;
int gcd(int a,int b){
return b==0?a:gcd(b,a%b);
}
int main(){
int n,m,k,x,a;
cin>>n>>m>>k>>x;
a = n*m/gcd(n,m)/m;
int s = 1,h = 10;
for(;k>0;k>>=1){
if(k&1){s = s*h%a;}
h = h*h%a;
}
cout<< (s*m+x)%n;
return 0;
}