数的分解

时间限制:65535 KB
难度:1
 
描述

你的任务是找到一个最小的正整数Q,使Q的各位数的乘积等于N。

 
输入
最多450组测试数据。数据以EOF结尾。
输入一个整数N(0 ≤ N ≤ 400)。
输出
输出Q,如果Q不存在则输出−1。
样例输入
10
5
样例输出
25
5
来源
ural
 1 #include<stdio.h>
 2 #include<iostream>
 3 
 4 using namespace std;
 5 
 6 int main(){
 7     int n;
 8     while(scanf("%d",&n)!=EOF){
 9 
10        int i = 0,ge,shi,bai,qi;
11        for(;i <= 10000 && n;i++){
12              if(i < 10){
13                 if(i == n)    
14                    break;
15           }
16           else if(i < 100){
17                ge = i % 10;
18                shi = i / 10;
19                if(ge * shi == n)
20                   break;
21           }
22           else if(i < 1000){
23              ge = i % 10;
24                shi = (i / 10)%10;
25                bai = i / 100;
26                if(ge * shi * bai == n)
27                   break;
28           }
29           else {
30                ge = i % 10;
31                shi = (i / 10)%10;
32                bai = (i / 100)%10;
33                qi = i / 1000;
34                if(ge * shi * bai * qi== n)
35                   break;
36           }
37        }
38        if(i==10001)
39           cout<<-1<<endl;
40        else if(n==0)
41           cout<<10<<endl;
42        else
43              cout<<i<<endl;
44     }
45     
46     return 0;
47 }
View Code

相关文章:

  • 2021-10-22
  • 2021-12-25
  • 2022-12-23
  • 2021-10-30
  • 2021-06-24
  • 2022-12-23
  • 2021-12-03
猜你喜欢
  • 2021-11-24
  • 2021-09-24
  • 2022-12-23
  • 2021-12-04
  • 2021-08-10
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案