2014年8月2日 星期六

測資 a+b+c+abc=n, 第一行為筆數

pa.in
32
40
54
82
96
124
138
166
84
128
150
194
260
174
204
294
354
120
184
149
7488
81576
716808
9654
56
36
32064
426936
14064
29736
135336
13128
1388


pa.sol
6
10
18
22
30
34
42
10
18
22
30
42
18
22
34
42
8
16
54
12
80
28
138
4
0
180
88
60
80
100
136
54

Code

#include <iostream>
using namespace std;
int p[] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97};
int compute(int a, int b,int c){
 return a+b+c+a*b*c;
}
int deviation(int a, int b,int c){
 return abs(a-b)+abs(b-c)+abs(c-a);
}
int solve(int n){
 for (int i=0;i<25;i++){
  for (int j=0;j<25;j++){
   for (int k=0;k<25;k++){
    if (n==compute(p[i],p[j],p[k])){
     return deviation(p[i],p[j],p[k]);
    }
   }
  }
 }
}
 
int main(){ 
 int cases;
 cin >> cases;
 for (int i=0;i<cases;i++){
  int n;
  cin >> n;
  cout << solve(n) << endl;
 }
 return 0;
}

2 則留言: