題意是求在給定的 p 進製下,滿足條件的數字 b 有多少。條件:若任何乙個數的各位數字之和能被 b 整除,則該數可被 b 整除。
在 p 進製下,每個正整數都可以都可以表示為:a0*p^0 + a1*p^1 + a2*p^2 +…+an*p^n
(a0*p^0 + a1*p^1 + a2*p^2 +…+an*p^n) % b = 0 ⇒(a0 % b + a1 % b * p^1 % b +…+ an % b * p^n % b)% b = 0 (1)
(a0 + a1 + … + an) % b = 0 ⇒ (a0 % b + … + an % b) % b = 0 (2)
(1)和(2)等價 當且僅當 p % b = 1( 即 p^n % b = 1),而 p % (p - 1) = 1,問題就轉化成了求 p - 1 的因子個數。
**如下:
1 #include 2view codeusing
namespace
std;
3int
main()
422 cnt*=(tmp+1
);23}24
}25if(a>1) cnt<<=1
;26 printf("
%d\n
",cnt);27}
28return0;
29 }
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 ...
HDU 6108 小C的倍數問題
對於每乙個數,能整除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 sq...
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...