poj1845 約數之和

2021-09-24 04:22:46 字數 766 閱讀 7441

本題應該說是乙個數學問題了。首先暴力肯定是不行的。

首先我們把a分解質因數,表示為p1^c1 * p2 ^c2 * ~~ pn ^ cn.。那麼a^b就可以表示為

p1^(c1 * b) * p2 ^(c2 *b) ~~ pn ^ (cn * b).

那麼很明顯了,所有約數的集合就是p1^k1,p2 ^ k2 ~~ pn ^ kn.其中0<= ki <= b * ci(1 <= i <= n)。

到了這裡我們在用分治的方法求出來就可以了。

#include"stdio.h"

#include"string.h"

#include"algorithm"

using namespace std;

#define mod 9901

typedef long long ll;

ll a,b;

ll kms(ll a,ll b)

a = a % mod * a % mod;

b = b >> 1;

}return ans;

}ll k_sum(ll p,ll limit)

int main()

// printf("i = %d cnt = %d\n",i,cnt);

sum *= k_sum(i,cnt * b);

sum %= mod;

}printf("%lld\n",(sum + mod) % mod);

}return 0;

}

Poj1845 冪的約數之和

時間限制 1 sec 記憶體限制 128 mb 提交 狀態 我的提交 給定正整數a,b,求a b的所有因數之和,並模9901。僅一行,有兩個整數a和b 0 a,b 50000000 第1行 問題的答案 copy 如果複製到控制台無換行,可以先貼上到文字編輯器,再複製 2 3 15 2 3 8 8 的...

poj 1845 求A B的約數之和

題意 求a b的所有約數之和 mod 9901。思路 大數模運算。兩個最基本公式 a b c a c b c c 和 a b c a c b c c 用 int64的原因為 n cnt i b cnt i 為a第i個素因子的個數 可能會超int。1 對a進行素因子分解得 a p1 a1 p2 a2 ...

POJ 1845乘法逆元 約數和

乘法逆元計算等比數列的求和公式 給兩個正整數a和b,計算ab的所有因子和的值對9901取模 約數和公式 s 1 p1 p1 2 p1 k1 1 p2 p2 2 p2 k2 1 pn pn 2 pn 3 pn kn 等比數列公式 pb c 1 1 p1 1 當模數mod為質數時,bmod 2逆元即為b...