用的暴力的方法,曹冲养猪能过…… 所以是极限了吗?
#include<bits/stdc++.h>
#define int long long
#define R register
using namespace std;
inline long long read()
{
long long f=1,x=0;
char ss=getchar();
while(ss<'0'||ss>'9'){if(ss=='-')f=-1;ss=getchar();}
while(ss>='0'&&ss<='9'){x=x*10+ss-'0';ss=getchar();}
return f*x;
}
inline long long gcd(long long a,long long b)
{
if (b==0) return a;
else return gcd(b,a%b);
}
inline void memge(long long &a1,long long &m1,long long a2,long long m2){
if(m2>m1) swap(m1,m2),swap(a1,a2);
int cnt = 0;
while(a1%m2!=a2){
a1=a1+m1;
}
m1 =(m2/gcd(m1,m2))*m1;
}
long long a1,m1;
int a[110],m[110];
signed main(){
int n;
n=read();
for(R int i = 1;i <= n;i++) a[i] = read();
for(R int i = 1;i <= n;i++) m[i] = read();
long long m1= m[1];
long long a1= a[1];
a1%=m1;
for(R int i=2;i<=n;i++){
long long a2 = a[i];long long m2 = m[i];
a2%=m2;
memge(a1,m1,a2,m2);
}
printf("%lld",(a1+m1)%m1);
return 0;
}