首页 > 代码库 > uva--993Product of digits
uva--993Product of digits
水题一枚,如果n能分解成2--9的因子相乘的形式的话肯定是可以的,如果不行那么就直接输出-1;
那么当能分解的时候,为了能使得答案的值最小,我们选择先分解大的因子;也就是按9--2的次序进行分解。
分解后直接按因子从小到大输出就是答案了。
代码如下:
#include<iostream> #include<cstring> #include<cstdio> using namespace std; int main() { int i,j,k,t,ans[50]; long long n; scanf("%d",&t); while(t--) { k=0; scanf("%lld",&n); if(n==1) { printf("1\n"); continue; } for(i=9;i>=2;i--) while(n%i==0) { ans[k++]=i; n=n/i; } if(n>10) { printf("-1\n"); continue; } for(i=k-1;i>=0;i--) printf("%d",ans[i]); printf("\n"); } return 0; }
uva--993Product of digits
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。