1. 程式人生 > >2017"百度之星"程序設計大賽 - 初賽(A)小C的倍數問題

2017"百度之星"程序設計大賽 - 初賽(A)小C的倍數問題

我們 main include else 條件 知乎 des sum 小學數學

Problem Description 根據小學數學的知識,我們知道一個正整數x是3的倍數的條件是x每一位加起來的和是3的倍數。反之,如果一個數每一位加起來是3的倍數,則這個數肯定是3的倍數。

現在給定進制P,求有多少個B滿足P進制下,一個正整數是B的倍數的充分必要條件是每一位加起來的和是B的倍數。

Input 第一行一個正整數T表示數據組數(1<=T<=20)。

接下來T行,每行一個正整數P(2 < P < 1e9),表示一組詢問。

Output 對於每組數據輸出一行,每一行一個數表示答案。

Sample Input 1 10

Sample Output 3 解法:對於B進制下的數字,都有類似性質,答案是B-1的因子數,嗯,還有證明看知乎
 1
#include<bits/stdc++.h> 2 using namespace std; 3 int main(){ 4 int t; 5 cin>>t; 6 while(t--){ 7 int sum=0; 8 int num; 9 cin>>num; 10 num--; 11 for(int i=1;i*i<=num;i++){ 12 if(num%i) continue; 13 int
pos=num/i; 14 if(i==pos){ 15 sum++; 16 }else{ 17 sum+=2; 18 } 19 } 20 cout<<sum<<endl; 21 } 22 return 0; 23 }

2017"百度之星"程序設計大賽 - 初賽(A)小C的倍數問題