1040 最大公約數之和
rihkddd
基準時間限制:1 秒 空間限制:131072 kb 分值: 80
難度:5級演算法題
給出乙個n,求1-n這n個數,同n的最大公約數的和。比如:n = 6
1,2,3,4,5,6 同6的最大公約數分別為1,2,3,2,1,6,加在一起 = 15
input
1個數n(n <= 10^9)output
公約數之和input示例
6output示例
15首先找n的各個因子,然後每乙個因子站屬於自己的空位置。算每乙個位置的貢獻。
**:
#pragma warning(disable:4996)
#include #include #include #include #include #include #include #include using namespace std;
typedef long long ll;
#define inf 0x3fffffff
const int mod = 1e9 + 7;
ll n;
vectorpri;
vector>ii;
void input()
void solve()
sort(pri.begin(), pri.end());
int sz = pri.size();
for (j = sz - 1; j >= 0; j--)
}sum = sum + r*(nu - minus);
ii.push_back(make_pair(r, nu - minus));
} cout << sum ;
}int main()
51nod1040最大公約數之和
題目大意 給出乙個n,求1 n這n個數,同n的最大公約數的和。比如 n 6 1,2,3,4,5,6 同6的最大公約數分別為1,2,3,2,1,6,加在一起 15 input 1個數n n 10 9 output 公約數之和 思路 將n分解質因子,每個質因子貢獻的是多少,累加求和。每個質因子貢獻的次數...
51Nod 1040 最大公約數之和
分析題目可以發現,兩個數gc d a,b x 則等價於gc d ax bx 1,問題就可以轉化為滿足gc d nx ix 1的i的個數,對答案貢獻就是個數乘上gc d n,i 很容易可以想到尤拉函式,因為 n 是小於等於n的數中與n互質的數的數目,gc d nx ix 1的i的個數就等於 nx 那麼...
51Nod 1040 最大公約數之和
1040 最大公約數之和 給出乙個n,求1 n這n個數,同n的最大公約數的和。比如 n 6 1,2,3,4,5,6 同6的最大公約數分別為1,2,3,2,1,6,加在一起 15 input 1個數n n 10 9 實際上應該是n 10 18output 公約數之和input示例 6output示例 ...