日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

《算法竞赛进阶指南》打卡-基本算法-AcWing 97. 约数之和:递归、快速幂

發(fā)布時(shí)間:2025/4/5 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《算法竞赛进阶指南》打卡-基本算法-AcWing 97. 约数之和:递归、快速幂 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

      • 題目解答
      • 題目來(lái)源

題目解答


來(lái)源:acwing

分析:
快速冪參考筆者的這篇博文:
算法刷題-數(shù)論-組合數(shù)、快速冪、逆元、遞推求組合數(shù)、逆元求組合數(shù)

約數(shù)之和參考筆者的這篇博文:
算法刷題-數(shù)論-試除法求約數(shù)、約數(shù)個(gè)數(shù)、約數(shù)之和、最大公約數(shù)(輾轉(zhuǎn)相除法)

假設(shè)N分解質(zhì)因數(shù)的結(jié)果是:
N=p1a1×p2a2×...×pkakN={p_1}^{a_1}\times{p_2}^{a_2}\times...\times{p_k}^{a_k}N=p1?a1?×p2?a2?×...×pk?ak?

則這個(gè)數(shù)N的約數(shù)之和等于
(p10+p11+p12+...+p1a1)×(p20+p21+p22+...+p2a2)×...×(pk0+pk1+pk2+...+pkak)(p_{1}^{0}+p_{1}^{1}+p_{1}^{2}+...+p_{1}^{a_{1}})\times(p_{2}^{0}+p_{2}^{1}+p_{2}^{2}+...+p_{2}^{a_{2}})\times...\times(p_{k}^{0}+p_{k}^{1}+p_{k}^{2}+...+p_{k}^{a_{k}})(p10?+p11?+p12?+...+p1a1??)×(p20?+p21?+p22?+...+p2a2??)×...×(pk0?+pk1?+pk2?+...+pkak??)
以上稱為“約數(shù)和定理”,在小學(xué)奧數(shù)中有應(yīng)用。

下面的sum(p,k)就是用來(lái)等比數(shù)列求和。答案就是所有的相乘。

AC代碼

#include<bits/stdc++.h> using namespace std; const int mod = 9901; // 快速冪求a ^k % mod int qmi(int a, int k){a %= mod;int res = 1;while(k){if( k & 1) res = res * a % mod;a = a * a % mod;k >>= 1;}return res; } // 求 p^0 + p^1 + ... + p ^k 等比數(shù)列求和 int sum(int p, int k){if( k == 0) return 1;// k 是偶數(shù),則0到k是k+1個(gè)數(shù),奇數(shù)個(gè)數(shù)if( k % 2 == 0) return ((long long)p * sum(p, k-1) + 1) % mod;//偶數(shù)個(gè)數(shù)的處理return (1 + qmi(p, k/2 + 1)) * sum(p, k/2) % mod;}int main(){int A, B;cin >> A >> B;int res = 1;// 求出A的每個(gè)約數(shù)的個(gè)數(shù)sfor(int i = 2; i <= A; i ++){int s = 0; // s是約數(shù)個(gè)數(shù)while( A % i == 0){s ++;A /= i;}if(s) res = res * sum(i, s * B) % mod;}if(!A) res = 0;cout << res << endl; }

題目來(lái)源

https://www.acwing.com/problem/content/99/

總結(jié)

以上是生活随笔為你收集整理的《算法竞赛进阶指南》打卡-基本算法-AcWing 97. 约数之和:递归、快速幂的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。