本文主要是介绍Product of Digits URAL - 1014,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Your task is to find the minimal positive integer number Q so that the product of digits of Q is exactly equal to N.
The input contains the single integer number N (0 ≤ N ≤ 10 9).
Your program should print to the output the only number Q. If such a number does not exist print −1.
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;
}
这篇关于Product of Digits URAL - 1014的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!