3536

 
  
1 // include file
2 #include < cstdio >
3 #include < cstdlib >
4 #include < cstring >
5 #include < cmath >
6 #include < cctype >
7 #include < ctime >
8
9 #include < iostream >
10 #include < sstream >
11 #include < fstream >
12 #include < iomanip >
13 #include < bitset >
14 #include < strstream >
15
16 #include < algorithm >
17 #include < string >
18 #include < vector >
19 #include < queue >
20 #include < set >
21 #include < list >
22 #include < functional >
23
24 using namespace std;
25
26 // typedef
27 typedef long long LL;
28 typedef unsigned long long ULL;
29
30 //
31 #define read freopen("in.txt","r",stdin)
32 #define write freopen("out.txt","w",stdout)
33 #define FORi(a,b,c) for(int i=(a);i<(b);i+=c)
34 #define FORj(a,b,c) for(int j=(a);j<(b);j+=c)
35 #define FORk(a,b,c) for(int k=(a);k<(b);k+=c)
36 #define FORp(a,b,c) for(int p=(a);p<(b);p+=c)
37 #define FORii(a,b,c) for(int ii=(a);ii<(b);ii+=c)
38 #define FORjj(a,b,c) for(int jj=(a);jj<(b);jj+=c)
39 #define FORkk(a,b,c) for(int kk=(a);kk<(b);kk+=c)
40
41 #define FF(i,a) for(int i=0;i<(a);i+++)
42 #define FFD(i,a) for(int i=(a)-1;i>=0;i--)
43 #define Z(a) (a<<1)
44 #define Y(a) (a>>1)
45
46 const double eps = 1e - 6 ;
47 const double INFf = 1e10;
48 const int INFi = 1000000000 ;
49 const double Pi = acos( - 1.0 );
50
51 template < class T > inline T sqr(T a){ return a * a;}
52 template < class T > inline T TMAX(T x,T y)
53 {
54 if (x > y) return x;
55 return y;
56 }
57 template < class T > inline T TMIN(T x,T y)
58 {
59 if (x < y) return x;
60 return y;
61 }
62 template < class T > inline void SWAP(T & x,T & y)
63 {
64 T t = x;
65 x = y;
66 y = t;
67 }
68 template < class T > inline T MMAX(T x,T y,T z)
69 {
70 return TMAX(TMAX(x,y),z);
71 }
72
73
74 // code begin
75 int N,Amin,a,b,c,f;
76 int main()
77 {
78 read;
79 write;
80 while (scanf( " %d " , & N) !=- 1 )
81 {
82 Amin = INFi;
83 f = 0 ;
84 FORi( 1 , 101 , 1 )
85 {
86 if (i * i * i == N)
87 {
88 f = 1 ;
89 printf( " %d %d %d\n " ,i,i,i);
90 break ;
91 }
92 }
93 if (f) continue ;
94 FORi( 1 , 1001 , 1 )
95 {
96 if (N % i == 0 )
97 FORj(i, 1001 , 1 )
98 {
99 if (i * j > N / 2 + 1 ) break ;
100 if (N % (i * j) == 0 )
101 {
102 int t = N / (i * j);
103 if ( i * j * 2 + i * t * 2 + t * j * 2 < Amin )
104 {
105 Amin = i * j * 2 + i * t * 2 + t * j * 2 ;
106 a = i;
107 b = j;
108 c = t;
109 }
110 }
111 }
112 }
113 printf( " %d %d %d\n " ,a,b,c);
114 }
115 return 0 ;
116 }

转载于:https://www.cnblogs.com/ac2012/archive/2011/03/08/1976724.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值