uva993

来源:互联网 发布:淘宝代销好还是自销好 编辑:程序博客网 时间:2024/06/06 03:17

题目:给你一个整数n,求一个数m,使得m的每个位数的乘积是n,求最小的m。
从9开始除(位数越少越小),知道除不尽或者完全除完

#include<cstdio>#include<iostream>#include<algorithm>#include<cstring>#include<string>using namespace std;int arr[1005];int main() {    int kase, i;    int n;    scanf("%d", &kase);    while(kase--) {        memset(arr, 0, sizeof(arr));        scanf("%d", &n);        int f=0;        if(n == 1) {            printf("1\n");            continue;        }        for(i=9; i>=2; i--) {            while(n%i==0 && n && n!=1) {                n /= i;                arr[f] = i;                f++;            }            if(n==1 || n==0) break;        }        if(n>1) printf("-1\n");        else  {            sort(arr,arr+f);            for(i=0; i<f; i++) printf("%d",arr[i]);            printf("\n");        }    }    return 0;}
0 0