度度熊與數字 2019百度之星初賽(二)

2021-09-26 07:22:55 字數 1470 閱讀 5823

problem description

度熊發現,111, 333 以及 999 這三個數字很神奇,它們的所有的倍數的每位數字的和一定是自己的倍數。例如說: 545454 是 333 的倍數,同時 5+4=95+4 = 95+4=9 也是 333 的倍數。在另乙個例子 666666666 是 999 的倍數,同時 6+6+6=186+6+6 = 186+6+6=18 也是 999 的倍數。

度熊又發現,除了 111, 333, 999 以外的的正整數,雖然並不滿足"所有的倍數的每位數字的和一定是自己的倍數",但也存在一些數是它們的倍數且各位數字和也是它們的倍數。例如說,888888888 是 121212 的倍數,且他的各位數字和 8+8+8=248+8+8=248+8+8=24 也是 121212 的倍數。

現在度熊想知道,給你乙個正整數 vvv,是否存在乙個數 ***,使得 vvv 是 *** 的倍數,同時它的每位數字的和也是 *** 的倍數呢?請找出所有這樣的數 ***。

input

有多組詢問,第一行包含乙個正整數 ttt 代表有幾組詢問,接著每組測試資料佔一行,包含乙個正整數 vvv。

1≤t≤1001 \le t \le 1001≤t≤100

1≤v≤1091 \le v \le 10^91≤v≤10​9​​

output

對於每乙個詢問,輸出兩行,第一行包含乙個正整數 mmm,mmm 代表對於該詢問的 vvv,有幾個滿足條件的 ***。第二行輸出 mmm 個數,把所有滿足條件的 *** 由小到大輸出。

sample input

319

666666

sample output

113

1 3 9

61 2 3 6 9 18

note

第乙個詢問中,111 的各位數和為 1=1×11 = 1 \times 11=1×1,本身等於 1×11 \times 11×1 都是 111 的倍數,故 111 確實為 v=1v=1v=1 的答案。

第三個詢問中,666666666666666666 的各位數和為 36=9×436 = 9 \times 436=9×4,本身等於 9×74749 \times 74749×7474 都是 999 的倍數,故 999 確實為 v=666666v=666666v=666666 的答案,經過仔細計算後能發現,除 999 以外, 1,2,3,6,181,2,3,6,181,2,3,6,18 也都是答案。

#include#include#include#includeusing namespace std;

int main()

int flag=0,c[90];

for(int j=1; j<=l; j++)}}

printf("%d\n",flag);

for(int j=0;jprintf("%d\n",c[flag-1]);

}return 0;

}

百度之星2019 1001 度度熊與數字

題意 給出乙個數字,求出其所有因數中,滿足該因數也是這個數所有位上數相加之和的因數,的所有這些因數 思路 一道簽到題做了半個多小時整個人都是懵逼的,首先從遍歷n遍,然後遍歷n 2遍,遍歷n p遍 p為除1外該數最小因數 1e9的資料大小無疑肯定是tle的。最後想想,tm的既然同時是n和n的各位和的因...

百度之星度度熊保護村莊

比賽的時候並沒有做出這道題。於是在賽後決定更正一下 把度度熊和它的夥伴們當成黑點,所有的村莊當成紅點 考慮對所有的黑點建圖 o n 暴力列舉所有的黑點點對,對於每個點對 a,b o n 檢測所有紅點 如果所有的紅點都在點對 a,b a b 的右側,則a到b連線一條長度為1的單向邊 如果所有的紅點都在...

百度之星小小粉絲度度熊

input 本題包含若干組測試資料。第一行兩個整數n,m,表示有n個區間,這n個區間內的天數,度度熊都簽到了 m表示m張補簽卡。接下來n行,每行兩個整數 l i r i 表示度度熊從第l i 天到第r i 天,都進行了簽到操作。資料範圍 1 n 100000 0 m 1000000000 0 l i...