題解:
改題目要求求出最小生成元,那麼我們由1到100000打表出他們的最小生成元,在printf就ok了
#include <cstdio>
#include <iostream>
#include <string>
#include <cstring>
#include <algorithm>
#include <map>
using namespace std;
int biao[100010];
int main() {
//freopen("in.txt","r",stdin);
//freopen("output.txt","w",stdout);
for(int i = 1; i < 100000; i++){
int tmp = i; int sum = tmp;
while(tmp > 0){
sum += tmp%10;
tmp /= 10;
}
if(sum <= 100000 && !biao[sum]) biao[sum] = i;
}
int n;
scanf("%d",&n);
for(int i = 0; i < n; i++){
int tmp;
scanf("%d",&tmp);
if(biao[tmp]) printf("%d\n",biao[tmp]);
else printf("0\n");
}
return 0;
}