A:注意到模数是要求lcm的数的倍数,直接先取模就可以了。考场脑抽,对其质因数分解判了一下每个因子有没有,当然也行。
#include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> #include<algorithm> using namespace std; int read() { int x=0,f=1;char c=getchar(); while (c<'0'||c>'9') {if (c=='-') f=-1;c=getchar();} while (c>='0'&&c<='9') x=(x<<1)+(x<<3)+(c^48),c=getchar(); return x*f; } #define P 1234567890 int a=246913578; int a2,a9,a3607,a3803,aP; int gcd(int n,int m){return m==0?n:gcd(m,n%m);} int main() { freopen("lcm.in","r",stdin); freopen("lcm.out","w",stdout); char c=getchar(); while (c>='0'&&c<='9') { int x=c^48; a2=x&1; a9=(a9*10+x)%9; a3607=(a3607*10+x)%3607; a3803=(a3803*10+x)%3803; aP=(10ll*aP+x)%P; c=getchar(); } if (a2) aP=2ll*aP%P; if (a3607) aP=3607ll*aP%P; if (a3803) aP=3803ll*aP%P; if (a9) if (a9%3==0) aP=3ll*aP%P; else aP=9ll*aP%P; cout<<aP; return 0; }