小A的数学题

小A最近开始研究数论题了,这一次他随手写出来一个式子,在这里插入图片描述
但是他发现他并不太会计算这个式子,你可以告诉他这个结果吗,答案可能会比较大,请模上1000000007。
输入描述:
一行两个正整数n, m

输出描述:
一行一个整数表示输出结果

示例1
输入
2 2
输出
7

#include
using namespace std;
long long ans[1000009];
const long long mod=1e9+7;
int main()
{
     
    ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    int n,m;
    long long res=0;
    cin>>n>>m;
    for(long long  i=min(n,m);i>=1;i--)
	{
     
        ans[i]=(n/i)*(m/i);
        for(long long j=2;i*j<=min(n,m);j++)
            ans[i]-=ans[i*j];
        res=(res+ ans[i]*i%mod*i%mod)%mod;
    }
    cout<<res<<"\n";
    return 0;
}

你可能感兴趣的:(牛客,算法,小A的数学题,数论,gcd,最大公因数)