列表

详情


NC21578. 牛牛的幂运算

描述

牛牛在做一道数学题,他发现自己不怎么会做,请你帮帮他
求有多少a,b,c,d满足ab = cd, 1<=a,b,c,d<=n, 模 109+7

输入描述

输入一个整数n (1 ≤ n ≤ 109)

输出描述

输出一个整数

示例1

输入:

2

输出:

6

示例2

输入:

100

输出:

21620

示例3

输入:

22306

输出:

68467

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++11(clang++ 3.9) 解法, 执行用时: 4ms, 内存消耗: 508K, 提交时间: 2020-09-20 23:09:35

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int mod=1e9+7;
signed main(){
    int n; cin>>n;
    int ans=n*(n+n-1)%mod;
    for(int i=2,cnt=2;i*i<=n;++i,cnt=2)
        for(int j=i*i;j<=n;j*=i,++cnt)
            for(int k=1;k<cnt;++k)if(__gcd(k,cnt)==1)ans=(ans+(n/cnt)*2%mod)%mod;
    cout<<ans;
    return 0;
}

上一题