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;
}
View Code

相关文章: