HDU 6108 小C的倍數問題

2021-08-24 23:06:01 字數 550 閱讀 9304

對於每乙個數,能整除ans  當且僅當這個數每位之和是ans的倍數;

要求在p進製下

x1+x2*p+x3*p^2+.......=n  

n%b==0且要求(x1+x2+x3+.....)%b==0

那麼--->( x2*(p-1)+x3*(p^2-1)+.....)%b==0  -->   % b == 0

當 b 能被 p-1 整除時 一定符合等式

即求 p-1 的因子個數,注意按  i<=sqrt(n) 來算,不然會超時。

這種做法原理是, 以這個數的平方根為界,若小於這個界限有乙個數能被n整除,那麼大於這個界限一定也存在乙個數能

被整除。所以當這個數為平方數時就存在乙個ans會重複

#include typedef long long ll;

using namespace std;

void solve(ll n)

printf("%lld\n",cnt);

}int main()

return 0;

}

hdu 6108 小C的倍數問題

acm.hdu.edu.cn showproblem.php?pid 6108 給定進製p,求有多少個b滿足p進製下,乙個正整數是b的倍數的充分必要條件是每一位加起來的和是b的倍數。在 p 進製下,每個正整數都可以都可以表示為 a0 a1p a2p 2 anpn a 0 a1 p anpn b 0 ...

hdu6108小C的倍數問題(數學)

思路 先理解一下為什麼乙個數各個數字上的和是3的倍數那這個數就是3倍數 先看兩位數字的,如數碼ab組合 a b為3的倍數 那麼10 a b 9a a b 9a能被3整除,a b能被3整除,所以10 b能被3整除 再看三位數字的,如數碼abc組合 a b c為3的倍數 那麼100 a 10 b c 9...

小C的倍數問題

problem description 根據小學數學的知識,我們知道乙個正整數x是3的倍數的條件是x每一位加起來的和是3的倍數。反之,如果乙個數每一位加起來是3的倍數,則這個數肯定是3的倍數。現在給定進製p,求有多少個b滿足p進製下,乙個正整數是b的倍數的充分必要條件是每一位加起來的和是b的倍數。i...