当前位置: 代码迷 >> 综合 >> Product of Digits URAL - 1014
  详细解决方案

Product of Digits URAL - 1014

热度:6   发布时间:2024-01-14 22:29:53.0
Your task is to find the minimal positive integer number Q so that the product of digits of Q is exactly equal to N.
Input
The input contains the single integer number N (0 ≤ N ≤ 10 9).
Output
Your program should print to the output the only number Q. If such a number does not exist print ?1.
Example
input output
10
25

题意

求最小正整数的乘积是n

思路

简单题,注意0时输出10即可

#include <iostream>
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll a[20];
ll flag;
ll w;
void f(ll x)
{ll i;if(x==1){flag=1;return ;}for(i=9;i>=2;i--){if(x%i==0){a[i]++;f(x/i);return ;}}
}
int main()
{ll n,i;flag=0;cin>>n;w=0;if(n==0){printf("10\n");return 0;}if(n==1){printf("1\n");return 0;}memset(a,0,sizeof(a));f(n);
//    for(i=2;i<=9;i++)
//        printf("%d ",a[i]);if(!flag) printf("-1\n");else{for(i=2;i<=9;i++){while(a[i]){printf("%lld",i);a[i]--;}}printf("\n");}return 0;
}

  相关解决方案