UVa 568 Just the Facts

A过去后看了一下别人的解法,发现除了打表还有一种数论的方法。

分析一下阶乘后面的0是怎么出现的呢,当然是2乘5得到的。

我们将1~N先放在一个数组里面。

从数组第一个元素开始,先统计一下N!中因子为5的个数记为count,将其除去,然后再除去count个2。这样一来的话把所有元素乘起来后就不会出现10的倍数了。

当然并不是真正的乘起来,那样的话肯定是要溢出的,因为只关心最后一位数,所以每次乘完后求10的余数即可。

我的做法是打表,因为题目里给了N <= 10000的条件限制,所以可以把1~10000的阶乘的第一个非0的数先算出来放到数组里,然后求哪个输出哪个即可。

  Just the Facts 

The expression N!, read as ``N factorial," denotes the product of the first N positive integers, where N is nonnegative. So, for example,

N N!
0 1
1 1
2 2
3 6
4 24
5 120
10 3628800

For this problem, you are to write a program that can compute the last non-zero digit of any factorial for ( ). For example, if your program is asked to compute the last nonzero digit of 5!, your program should produce ``2" because 5! = 120, and 2 is the last nonzero digit of 120.

Input

Input to the program is a series of nonnegative integers not exceeding 10000, each on its own line with no other letters, digits or spaces. For each integer N, you should read the value and compute the last nonzero digit of N!.

Output

For each integer input, the program should print exactly one line of output. Each line of output should contain the value N, right-justified in columns 1 through 5 with leading blanks, not leading zeroes. Columns 6 - 9 must contain `` -> " (space hyphen greater space). Column 10 must contain the single last non-zero digit of N!.

Sample Input

1
2
26
125
3125
9999

Sample Output

    1 -> 1
    2 -> 2
   26 -> 4
  125 -> 8
 3125 -> 2
 9999 -> 8

Miguel A. Revilla 
1998-03-10
 
打表代码:

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstring>
 4 using namespace std;
 5
 6 int a[40000], b[10000 + 10];
 7 int f(int n);
 8
 9 int main(void)
10 {
11     freopen("asdasd.txt", "w", stdout);
12     a[0] = 1;
13     b[0] = b[1] = 1;
14     int i;
15     for(i = 2; i <= 10000; ++i)
16     {    //乘以i
17         int k = i, c = 0;
18         while(k % 10 == 0)
19             k /= 10;
20         for(int j = 0; j < 40000; ++j)
21         {
22             int s = a[j] * k + c;
23             a[j] = s % 10;
24             c = s / 10;
25         }
26         b[i] = f(i);
27     }
28     for(i = 0; i <= 10000; ++i)
29     {
30         printf("%d,", b[i]);
31         if(i % 20 == 0)
32             printf("\n");
33     }
34
35     return 0;
36 }
37 //求n!的第一个非0的数
38 int f(int n)
39 {
40     int i;
41     for(i = 0; i <= 40000; ++i)
42         if(a[i] != 0)
43             break;
44     return a[i];
45 }

代码君


AC代码:

  1 //#define LOCAL
  2 #include <iostream>
  3 #include <cstdio>
  4 #include <cstring>
  5 using namespace std;
  6
  7 const int maxn = 40000 + 10;
  8 int a[maxn];        //存放阶乘的结果
  9 //存放b[i]阶乘的最后一位非0的数
 10 char b[10000 + 10] = {1,
 11 1,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
 12 4,8,4,6,4,4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,
 13 2,4,2,8,6,6,2,6,4,2,2,4,2,8,4,4,8,4,6,6,
 14 6,2,6,4,6,6,2,6,4,8,8,6,8,2,4,4,8,4,6,8,
 15 8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,6,2,6,4,4,
 16 4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
 17 6,2,6,4,8,8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,
 18 4,8,4,6,2,2,4,2,8,2,2,4,2,8,4,4,8,4,6,6,
 19 6,2,6,4,6,6,2,6,4,8,8,6,8,2,6,6,2,6,4,2,
 20 2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,4,8,4,6,2,
 21 2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,
 22 8,6,8,2,2,2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,
 23 6,2,6,4,8,8,6,8,2,8,8,6,8,2,6,6,2,6,4,4,
 24 4,8,4,6,4,4,8,4,6,2,2,4,2,8,2,2,4,2,8,4,
 25 4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,8,6,8,2,6,
 26 6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
 27 4,8,4,6,2,2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,
 28 6,2,6,4,8,8,6,8,2,2,2,4,2,8,4,4,8,4,6,6,
 29 6,2,6,4,6,6,2,6,4,8,8,6,8,2,2,2,4,2,8,4,
 30 4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,8,6,8,2,8,
 31 8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,
 32 2,4,2,8,4,4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,
 33 2,4,2,8,6,6,2,6,4,8,8,6,8,2,6,6,2,6,4,4,
 34 4,8,4,6,4,4,8,4,6,2,2,4,2,8,8,8,6,8,2,6,
 35 6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,2,4,2,8,4,
 36 4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
 37 6,2,6,4,6,6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,
 38 8,6,8,2,4,4,8,4,6,8,8,6,8,2,6,6,2,6,4,4,
 39 4,8,4,6,4,4,8,4,6,2,2,4,2,8,6,6,2,6,4,2,
 40 2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,4,8,4,6,6,
 41 6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
 42 4,8,4,6,6,6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,
 43 8,6,8,2,4,4,8,4,6,4,4,8,4,6,8,8,6,8,2,2,
 44 2,4,2,8,2,2,4,2,8,6,6,2,6,4,2,2,4,2,8,4,
 45 4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,8,6,8,2,4,
 46 4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
 47 6,2,6,4,4,4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,
 48 2,4,2,8,6,6,2,6,4,8,8,6,8,2,6,6,2,6,4,4,
 49 4,8,4,6,4,4,8,4,6,2,2,4,2,8,2,2,4,2,8,4,
 50 4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,8,6,8,2,6,
 51 6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
 52 4,8,4,6,2,2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,
 53 6,2,6,4,8,8,6,8,2,2,2,4,2,8,4,4,8,4,6,6,
 54 6,2,6,4,6,6,2,6,4,8,8,6,8,2,8,8,6,8,2,6,
 55 6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,2,4,2,8,2,
 56 2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,
 57 8,6,8,2,6,6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,
 58 8,6,8,2,4,4,8,4,6,2,2,4,2,8,4,4,8,4,6,6,
 59 6,2,6,4,6,6,2,6,4,8,8,6,8,2,2,2,4,2,8,4,
 60 4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,8,6,8,2,2,
 61 2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,
 62 8,6,8,2,8,8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,
 63 4,8,4,6,2,2,4,2,8,4,4,8,4,6,8,8,6,8,2,2,
 64 2,4,2,8,2,2,4,2,8,6,6,2,6,4,8,8,6,8,2,6,
 65 6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,2,4,2,8,8,
 66 8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,
 67 2,4,2,8,4,4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,
 68 2,4,2,8,6,6,2,6,4,6,6,2,6,4,2,2,4,2,8,8,
 69 8,6,8,2,8,8,6,8,2,4,4,8,4,6,8,8,6,8,2,6,
 70 6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,2,4,2,8,6,
 71 6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
 72 4,8,4,6,6,6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,
 73 8,6,8,2,4,4,8,4,6,2,2,4,2,8,4,4,8,4,6,6,
 74 6,2,6,4,6,6,2,6,4,8,8,6,8,2,8,8,6,8,2,6,
 75 6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,2,4,2,8,4,
 76 4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
 77 6,2,6,4,8,8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,
 78 4,8,4,6,2,2,4,2,8,8,8,6,8,2,6,6,2,6,4,4,
 79 4,8,4,6,4,4,8,4,6,2,2,4,2,8,6,6,2,6,4,2,
 80 2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,4,8,4,6,4,
 81 4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
 82 6,2,6,4,2,2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,
 83 6,2,6,4,8,8,6,8,2,4,4,8,4,6,8,8,6,8,2,2,
 84 2,4,2,8,2,2,4,2,8,6,6,2,6,4,4,4,8,4,6,8,
 85 8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,6,2,6,4,6,
 86 6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
 87 4,8,4,6,4,4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,
 88 2,4,2,8,6,6,2,6,4,2,2,4,2,8,4,4,8,4,6,6,
 89 6,2,6,4,6,6,2,6,4,8,8,6,8,2,4,4,8,4,6,8,
 90 8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,6,2,6,4,4,
 91 4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
 92 6,2,6,4,4,4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,
 93 2,4,2,8,6,6,2,6,4,6,6,2,6,4,2,2,4,2,8,8,
 94 8,6,8,2,8,8,6,8,2,4,4,8,4,6,8,8,6,8,2,6,
 95 6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,2,4,2,8,6,
 96 6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
 97 4,8,4,6,6,6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,
 98 8,6,8,2,4,4,8,4,6,8,8,6,8,2,6,6,2,6,4,4,
 99 4,8,4,6,4,4,8,4,6,2,2,4,2,8,2,2,4,2,8,4,
100 4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,8,6,8,2,6,
101 6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
102 4,8,4,6,2,2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,
103 6,2,6,4,8,8,6,8,2,2,2,4,2,8,4,4,8,4,6,6,
104 6,2,6,4,6,6,2,6,4,8,8,6,8,2,6,6,2,6,4,2,
105 2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,4,8,4,6,4,
106 4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
107 6,2,6,4,2,2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,
108 6,2,6,4,8,8,6,8,2,4,4,8,4,6,8,8,6,8,2,2,
109 2,4,2,8,2,2,4,2,8,6,6,2,6,4,4,4,8,4,6,8,
110 8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,6,2,6,4,8,
111 8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,
112 2,4,2,8,2,2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,
113 6,2,6,4,8,8,6,8,2,6,6,2,6,4,2,2,4,2,8,8,
114 8,6,8,2,8,8,6,8,2,4,4,8,4,6,2,2,4,2,8,4,
115 4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,8,6,8,2,2,
116 2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,
117 8,6,8,2,8,8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,
118 4,8,4,6,2,2,4,2,8,2,2,4,2,8,4,4,8,4,6,6,
119 6,2,6,4,6,6,2,6,4,8,8,6,8,2,6,6,2,6,4,2,
120 2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,4,8,4,6,2,
121 2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,
122 8,6,8,2,2,2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,
123 6,2,6,4,8,8,6,8,2,2,2,4,2,8,4,4,8,4,6,6,
124 6,2,6,4,6,6,2,6,4,8,8,6,8,2,8,8,6,8,2,6,
125 6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,2,4,2,8,4,
126 4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
127 6,2,6,4,8,8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,
128 4,8,4,6,2,2,4,2,8,8,8,6,8,2,6,6,2,6,4,4,
129 4,8,4,6,4,4,8,4,6,2,2,4,2,8,4,4,8,4,6,8,
130 8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,6,2,6,4,6,
131 6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
132 4,8,4,6,8,8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,
133 4,8,4,6,2,2,4,2,8,6,6,2,6,4,2,2,4,2,8,8,
134 8,6,8,2,8,8,6,8,2,4,4,8,4,6,6,6,2,6,4,2,
135 2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,4,8,4,6,4,
136 4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
137 6,2,6,4,6,6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,
138 8,6,8,2,4,4,8,4,6,8,8,6,8,2,6,6,2,6,4,4,
139 4,8,4,6,4,4,8,4,6,2,2,4,2,8,6,6,2,6,4,2,
140 2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,4,8,4,6,6,
141 6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
142 4,8,4,6,2,2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,
143 6,2,6,4,8,8,6,8,2,8,8,6,8,2,6,6,2,6,4,4,
144 4,8,4,6,4,4,8,4,6,2,2,4,2,8,4,4,8,4,6,8,
145 8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,6,2,6,4,8,
146 8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,
147 2,4,2,8,8,8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,
148 4,8,4,6,2,2,4,2,8,2,2,4,2,8,4,4,8,4,6,6,
149 6,2,6,4,6,6,2,6,4,8,8,6,8,2,8,8,6,8,2,6,
150 6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,2,4,2,8,4,
151 4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
152 6,2,6,4,8,8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,
153 4,8,4,6,2,2,4,2,8,8,8,6,8,2,6,6,2,6,4,4,
154 4,8,4,6,4,4,8,4,6,2,2,4,2,8,8,8,6,8,2,6,
155 6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,2,4,2,8,2,
156 2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,
157 8,6,8,2,6,6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,
158 8,6,8,2,4,4,8,4,6,2,2,4,2,8,4,4,8,4,6,6,
159 6,2,6,4,6,6,2,6,4,8,8,6,8,2,2,2,4,2,8,4,
160 4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,8,6,8,2,6,
161 6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
162 4,8,4,6,4,4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,
163 2,4,2,8,6,6,2,6,4,2,2,4,2,8,4,4,8,4,6,6,
164 6,2,6,4,6,6,2,6,4,8,8,6,8,2,4,4,8,4,6,8,
165 8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,6,2,6,4,4,
166 4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
167 6,2,6,4,2,2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,
168 6,2,6,4,8,8,6,8,2,8,8,6,8,2,6,6,2,6,4,4,
169 4,8,4,6,4,4,8,4,6,2,2,4,2,8,4,4,8,4,6,8,
170 8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,6,2,6,4,8,
171 8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,
172 2,4,2,8,8,8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,
173 4,8,4,6,2,2,4,2,8,6,6,2,6,4,2,2,4,2,8,8,
174 8,6,8,2,8,8,6,8,2,4,4,8,4,6,4,4,8,4,6,8,
175 8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,6,2,6,4,2,
176 2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,
177 8,6,8,2,4,4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,
178 2,4,2,8,6,6,2,6,4,4,4,8,4,6,8,8,6,8,2,2,
179 2,4,2,8,2,2,4,2,8,6,6,2,6,4,6,6,2,6,4,2,
180 2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,4,8,4,6,4,
181 4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
182 6,2,6,4,2,2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,
183 6,2,6,4,8,8,6,8,2,4,4,8,4,6,8,8,6,8,2,2,
184 2,4,2,8,2,2,4,2,8,6,6,2,6,4,4,4,8,4,6,8,
185 8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,6,2,6,4,4,
186 4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
187 6,2,6,4,6,6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,
188 8,6,8,2,4,4,8,4,6,8,8,6,8,2,6,6,2,6,4,4,
189 4,8,4,6,4,4,8,4,6,2,2,4,2,8,6,6,2,6,4,2,
190 2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,4,8,4,6,6,
191 6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
192 4,8,4,6,8,8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,
193 4,8,4,6,2,2,4,2,8,2,2,4,2,8,4,4,8,4,6,6,
194 6,2,6,4,6,6,2,6,4,8,8,6,8,2,6,6,2,6,4,2,
195 2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,4,8,4,6,2,
196 2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,
197 8,6,8,2,2,2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,
198 6,2,6,4,8,8,6,8,2,2,2,4,2,8,4,4,8,4,6,6,
199 6,2,6,4,6,6,2,6,4,8,8,6,8,2,8,8,6,8,2,6,
200 6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,2,4,2,8,4,
201 4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
202 6,2,6,4,8,8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,
203 4,8,4,6,2,2,4,2,8,8,8,6,8,2,6,6,2,6,4,4,
204 4,8,4,6,4,4,8,4,6,2,2,4,2,8,6,6,2,6,4,2,
205 2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,4,8,4,6,4,
206 4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
207 6,2,6,4,2,2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,
208 6,2,6,4,8,8,6,8,2,4,4,8,4,6,8,8,6,8,2,2,
209 2,4,2,8,2,2,4,2,8,6,6,2,6,4,4,4,8,4,6,8,
210 8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,6,2,6,4,6,
211 6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
212 4,8,4,6,4,4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,
213 2,4,2,8,6,6,2,6,4,2,2,4,2,8,4,4,8,4,6,6,
214 6,2,6,4,6,6,2,6,4,8,8,6,8,2,4,4,8,4,6,8,
215 8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,6,2,6,4,4,
216 4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
217 6,2,6,4,4,4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,
218 2,4,2,8,6,6,2,6,4,6,6,2,6,4,2,2,4,2,8,8,
219 8,6,8,2,8,8,6,8,2,4,4,8,4,6,8,8,6,8,2,6,
220 6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,2,4,2,8,6,
221 6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
222 4,8,4,6,6,6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,
223 8,6,8,2,4,4,8,4,6,8,8,6,8,2,6,6,2,6,4,4,
224 4,8,4,6,4,4,8,4,6,2,2,4,2,8,2,2,4,2,8,4,
225 4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,8,6,8,2,6,
226 6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
227 4,8,4,6,2,2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,
228 6,2,6,4,8,8,6,8,2,2,2,4,2,8,4,4,8,4,6,6,
229 6,2,6,4,6,6,2,6,4,8,8,6,8,2,4,4,8,4,6,8,
230 8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,6,2,6,4,6,
231 6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
232 4,8,4,6,8,8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,
233 4,8,4,6,2,2,4,2,8,6,6,2,6,4,2,2,4,2,8,8,
234 8,6,8,2,8,8,6,8,2,4,4,8,4,6,6,6,2,6,4,2,
235 2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,4,8,4,6,2,
236 2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,
237 8,6,8,2,8,8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,
238 4,8,4,6,2,2,4,2,8,4,4,8,4,6,8,8,6,8,2,2,
239 2,4,2,8,2,2,4,2,8,6,6,2,6,4,8,8,6,8,2,6,
240 6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,2,4,2,8,8,
241 8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,
242 2,4,2,8,2,2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,
243 6,2,6,4,8,8,6,8,2,8,8,6,8,2,6,6,2,6,4,4,
244 4,8,4,6,4,4,8,4,6,2,2,4,2,8,4,4,8,4,6,8,
245 8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,6,2,6,4,8,
246 8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,
247 2,4,2,8,8,8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,
248 4,8,4,6,2,2,4,2,8,8,8,6,8,2,6,6,2,6,4,4,
249 4,8,4,6,4,4,8,4,6,2,2,4,2,8,2,2,4,2,8,4,
250 4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,8,6,8,2,6,
251 6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
252 4,8,4,6,2,2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,
253 6,2,6,4,8,8,6,8,2,2,2,4,2,8,4,4,8,4,6,6,
254 6,2,6,4,6,6,2,6,4,8,8,6,8,2,6,6,2,6,4,2,
255 2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,4,8,4,6,4,
256 4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
257 6,2,6,4,2,2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,
258 6,2,6,4,8,8,6,8,2,4,4,8,4,6,8,8,6,8,2,2,
259 2,4,2,8,2,2,4,2,8,6,6,2,6,4,4,4,8,4,6,8,
260 8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,6,2,6,4,2,
261 2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,
262 8,6,8,2,8,8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,
263 4,8,4,6,2,2,4,2,8,4,4,8,4,6,8,8,6,8,2,2,
264 2,4,2,8,2,2,4,2,8,6,6,2,6,4,8,8,6,8,2,6,
265 6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,2,4,2,8,8,
266 8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,
267 2,4,2,8,6,6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,
268 8,6,8,2,4,4,8,4,6,4,4,8,4,6,8,8,6,8,2,2,
269 2,4,2,8,2,2,4,2,8,6,6,2,6,4,2,2,4,2,8,4,
270 4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,8,6,8,2,4,
271 4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
272 6,2,6,4,4,4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,
273 2,4,2,8,6,6,2,6,4,6,6,2,6,4,2,2,4,2,8,8,
274 8,6,8,2,8,8,6,8,2,4,4,8,4,6,4,4,8,4,6,8,
275 8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,6,2,6,4,2,
276 2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,
277 8,6,8,2,4,4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,
278 2,4,2,8,6,6,2,6,4,4,4,8,4,6,8,8,6,8,2,2,
279 2,4,2,8,2,2,4,2,8,6,6,2,6,4,4,4,8,4,6,8,
280 8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,6,2,6,4,6,
281 6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
282 4,8,4,6,8,8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,
283 4,8,4,6,2,2,4,2,8,6,6,2,6,4,2,2,4,2,8,8,
284 8,6,8,2,8,8,6,8,2,4,4,8,4,6,6,6,2,6,4,2,
285 2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,4,8,4,6,8,
286 8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,
287 2,4,2,8,2,2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,
288 6,2,6,4,8,8,6,8,2,6,6,2,6,4,2,2,4,2,8,8,
289 8,6,8,2,8,8,6,8,2,4,4,8,4,6,2,2,4,2,8,4,
290 4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,8,6,8,2,2,
291 2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,
292 8,6,8,2,8,8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,
293 4,8,4,6,2,2,4,2,8,2,2,4,2,8,4,4,8,4,6,6,
294 6,2,6,4,6,6,2,6,4,8,8,6,8,2,6,6,2,6,4,2,
295 2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,4,8,4,6,2,
296 2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,
297 8,6,8,2,2,2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,
298 6,2,6,4,8,8,6,8,2,4,4,8,4,6,8,8,6,8,2,2,
299 2,4,2,8,2,2,4,2,8,6,6,2,6,4,6,6,2,6,4,2,
300 2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,4,8,4,6,8,
301 8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,
302 2,4,2,8,6,6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,
303 8,6,8,2,4,4,8,4,6,6,6,2,6,4,2,2,4,2,8,8,
304 8,6,8,2,8,8,6,8,2,4,4,8,4,6,4,4,8,4,6,8,
305 8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,6,2,6,4,6,
306 6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
307 4,8,4,6,8,8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,
308 4,8,4,6,2,2,4,2,8,6,6,2,6,4,2,2,4,2,8,8,
309 8,6,8,2,8,8,6,8,2,4,4,8,4,6,6,6,2,6,4,2,
310 2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,4,8,4,6,6,
311 6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
312 4,8,4,6,4,4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,
313 2,4,2,8,6,6,2,6,4,2,2,4,2,8,4,4,8,4,6,6,
314 6,2,6,4,6,6,2,6,4,8,8,6,8,2,4,4,8,4,6,8,
315 8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,6,2,6,4,4,
316 4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
317 6,2,6,4,2,2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,
318 6,2,6,4,8,8,6,8,2,8,8,6,8,2,6,6,2,6,4,4,
319 4,8,4,6,4,4,8,4,6,2,2,4,2,8,4,4,8,4,6,8,
320 8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,6,2,6,4,8,
321 8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,
322 2,4,2,8,8,8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,
323 4,8,4,6,2,2,4,2,8,8,8,6,8,2,6,6,2,6,4,4,
324 4,8,4,6,4,4,8,4,6,2,2,4,2,8,2,2,4,2,8,4,
325 4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,8,6,8,2,6,
326 6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
327 4,8,4,6,2,2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,
328 6,2,6,4,8,8,6,8,2,2,2,4,2,8,4,4,8,4,6,6,
329 6,2,6,4,6,6,2,6,4,8,8,6,8,2,4,4,8,4,6,8,
330 8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,6,2,6,4,6,
331 6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
332 4,8,4,6,8,8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,
333 4,8,4,6,2,2,4,2,8,6,6,2,6,4,2,2,4,2,8,8,
334 8,6,8,2,8,8,6,8,2,4,4,8,4,6,6,6,2,6,4,2,
335 2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,4,8,4,6,4,
336 4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
337 6,2,6,4,6,6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,
338 8,6,8,2,4,4,8,4,6,8,8,6,8,2,6,6,2,6,4,4,
339 4,8,4,6,4,4,8,4,6,2,2,4,2,8,6,6,2,6,4,2,
340 2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,4,8,4,6,6,
341 6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
342 4,8,4,6,6,6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,
343 8,6,8,2,4,4,8,4,6,4,4,8,4,6,8,8,6,8,2,2,
344 2,4,2,8,2,2,4,2,8,6,6,2,6,4,2,2,4,2,8,4,
345 4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,8,6,8,2,4,
346 4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
347 6,2,6,4,4,4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,
348 2,4,2,8,6,6,2,6,4,2,2,4,2,8,4,4,8,4,6,6,
349 6,2,6,4,6,6,2,6,4,8,8,6,8,2,8,8,6,8,2,6,
350 6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,2,4,2,8,4,
351 4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
352 6,2,6,4,8,8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,
353 4,8,4,6,2,2,4,2,8,8,8,6,8,2,6,6,2,6,4,4,
354 4,8,4,6,4,4,8,4,6,2,2,4,2,8,8,8,6,8,2,6,
355 6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,2,4,2,8,2,
356 2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,
357 8,6,8,2,6,6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,
358 8,6,8,2,4,4,8,4,6,2,2,4,2,8,4,4,8,4,6,6,
359 6,2,6,4,6,6,2,6,4,8,8,6,8,2,2,2,4,2,8,4,
360 4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,8,6,8,2,4,
361 4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
362 6,2,6,4,6,6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,
363 8,6,8,2,4,4,8,4,6,8,8,6,8,2,6,6,2,6,4,4,
364 4,8,4,6,4,4,8,4,6,2,2,4,2,8,6,6,2,6,4,2,
365 2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,4,8,4,6,6,
366 6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
367 4,8,4,6,4,4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,
368 2,4,2,8,6,6,2,6,4,6,6,2,6,4,2,2,4,2,8,8,
369 8,6,8,2,8,8,6,8,2,4,4,8,4,6,8,8,6,8,2,6,
370 6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,2,4,2,8,6,
371 6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
372 4,8,4,6,6,6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,
373 8,6,8,2,4,4,8,4,6,6,6,2,6,4,2,2,4,2,8,8,
374 8,6,8,2,8,8,6,8,2,4,4,8,4,6,4,4,8,4,6,8,
375 8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,6,2,6,4,2,
376 2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,
377 8,6,8,2,4,4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,
378 2,4,2,8,6,6,2,6,4,4,4,8,4,6,8,8,6,8,2,2,
379 2,4,2,8,2,2,4,2,8,6,6,2,6,4,2,2,4,2,8,4,
380 4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,8,6,8,2,8,
381 8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,
382 2,4,2,8,4,4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,
383 2,4,2,8,6,6,2,6,4,8,8,6,8,2,6,6,2,6,4,4,
384 4,8,4,6,4,4,8,4,6,2,2,4,2,8,8,8,6,8,2,6,
385 6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,2,4,2,8,6,
386 6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
387 4,8,4,6,4,4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,
388 2,4,2,8,6,6,2,6,4,2,2,4,2,8,4,4,8,4,6,6,
389 6,2,6,4,6,6,2,6,4,8,8,6,8,2,4,4,8,4,6,8,
390 8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,6,2,6,4,4,
391 4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
392 6,2,6,4,8,8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,
393 4,8,4,6,2,2,4,2,8,2,2,4,2,8,4,4,8,4,6,6,
394 6,2,6,4,6,6,2,6,4,8,8,6,8,2,6,6,2,6,4,2,
395 2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,4,8,4,6,2,
396 2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,
397 8,6,8,2,2,2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,
398 6,2,6,4,8,8,6,8,2,8,8,6,8,2,6,6,2,6,4,4,
399 4,8,4,6,4,4,8,4,6,2,2,4,2,8,2,2,4,2,8,4,
400 4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,8,6,8,2,6,
401 6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
402 4,8,4,6,2,2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,
403 6,2,6,4,8,8,6,8,2,2,2,4,2,8,4,4,8,4,6,6,
404 6,2,6,4,6,6,2,6,4,8,8,6,8,2,2,2,4,2,8,4,
405 4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,8,6,8,2,8,
406 8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,
407 2,4,2,8,4,4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,
408 2,4,2,8,6,6,2,6,4,8,8,6,8,2,6,6,2,6,4,4,
409 4,8,4,6,4,4,8,4,6,2,2,4,2,8,8,8,6,8,2,6,
410 6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,2,4,2,8,4,
411 4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
412 6,2,6,4,6,6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,
413 8,6,8,2,4,4,8,4,6,8,8,6,8,2,6,6,2,6,4,4,
414 4,8,4,6,4,4,8,4,6,2,2,4,2,8,6,6,2,6,4,2,
415 2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,4,8,4,6,6,
416 6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
417 4,8,4,6,8,8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,
418 4,8,4,6,2,2,4,2,8,2,2,4,2,8,4,4,8,4,6,6,
419 6,2,6,4,6,6,2,6,4,8,8,6,8,2,6,6,2,6,4,2,
420 2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,4,8,4,6,2,
421 2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,
422 8,6,8,2,2,2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,
423 6,2,6,4,8,8,6,8,2,4,4,8,4,6,8,8,6,8,2,2,
424 2,4,2,8,2,2,4,2,8,6,6,2,6,4,6,6,2,6,4,2,
425 2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,4,8,4,6,8,
426 8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,
427 2,4,2,8,6,6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,
428 8,6,8,2,4,4,8,4,6,6,6,2,6,4,2,2,4,2,8,8,
429 8,6,8,2,8,8,6,8,2,4,4,8,4,6,4,4,8,4,6,8,
430 8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,6,2,6,4,6,
431 6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
432 4,8,4,6,8,8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,
433 4,8,4,6,2,2,4,2,8,6,6,2,6,4,2,2,4,2,8,8,
434 8,6,8,2,8,8,6,8,2,4,4,8,4,6,6,6,2,6,4,2,
435 2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,4,8,4,6,6,
436 6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
437 4,8,4,6,4,4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,
438 2,4,2,8,6,6,2,6,4,2,2,4,2,8,4,4,8,4,6,6,
439 6,2,6,4,6,6,2,6,4,8,8,6,8,2,4,4,8,4,6,8,
440 8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,6,2,6,4,4,
441 4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
442 6,2,6,4,2,2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,
443 6,2,6,4,8,8,6,8,2,8,8,6,8,2,6,6,2,6,4,4,
444 4,8,4,6,4,4,8,4,6,2,2,4,2,8,4,4,8,4,6,8,
445 8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,6,2,6,4,8,
446 8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,
447 2,4,2,8,8,8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,
448 4,8,4,6,2,2,4,2,8,2,2,4,2,8,4,4,8,4,6,6,
449 6,2,6,4,6,6,2,6,4,8,8,6,8,2,8,8,6,8,2,6,
450 6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,2,4,2,8,4,
451 4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
452 6,2,6,4,8,8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,
453 4,8,4,6,2,2,4,2,8,8,8,6,8,2,6,6,2,6,4,4,
454 4,8,4,6,4,4,8,4,6,2,2,4,2,8,6,6,2,6,4,2,
455 2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,4,8,4,6,4,
456 4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
457 6,2,6,4,2,2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,
458 6,2,6,4,8,8,6,8,2,4,4,8,4,6,8,8,6,8,2,2,
459 2,4,2,8,2,2,4,2,8,6,6,2,6,4,4,4,8,4,6,8,
460 8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,6,2,6,4,6,
461 6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
462 4,8,4,6,4,4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,
463 2,4,2,8,6,6,2,6,4,2,2,4,2,8,4,4,8,4,6,6,
464 6,2,6,4,6,6,2,6,4,8,8,6,8,2,4,4,8,4,6,8,
465 8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,6,2,6,4,4,
466 4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
467 6,2,6,4,4,4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,
468 2,4,2,8,6,6,2,6,4,6,6,2,6,4,2,2,4,2,8,8,
469 8,6,8,2,8,8,6,8,2,4,4,8,4,6,8,8,6,8,2,6,
470 6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,2,4,2,8,6,
471 6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
472 4,8,4,6,6,6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,
473 8,6,8,2,4,4,8,4,6,8,8,6,8,2,6,6,2,6,4,4,
474 4,8,4,6,4,4,8,4,6,2,2,4,2,8,2,2,4,2,8,4,
475 4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,8,6,8,2,6,
476 6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
477 4,8,4,6,2,2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,
478 6,2,6,4,8,8,6,8,2,2,2,4,2,8,4,4,8,4,6,6,
479 6,2,6,4,6,6,2,6,4,8,8,6,8,2,8,8,6,8,2,6,
480 6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,2,4,2,8,2,
481 2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,
482 8,6,8,2,6,6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,
483 8,6,8,2,4,4,8,4,6,2,2,4,2,8,4,4,8,4,6,6,
484 6,2,6,4,6,6,2,6,4,8,8,6,8,2,2,2,4,2,8,4,
485 4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,8,6,8,2,4,
486 4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
487 6,2,6,4,6,6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,
488 8,6,8,2,4,4,8,4,6,8,8,6,8,2,6,6,2,6,4,4,
489 4,8,4,6,4,4,8,4,6,2,2,4,2,8,6,6,2,6,4,2,
490 2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,4,8,4,6,6,
491 6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
492 4,8,4,6,4,4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,
493 2,4,2,8,6,6,2,6,4,6,6,2,6,4,2,2,4,2,8,8,
494 8,6,8,2,8,8,6,8,2,4,4,8,4,6,8,8,6,8,2,6,
495 6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,2,4,2,8,6,
496 6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
497 4,8,4,6,6,6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,
498 8,6,8,2,4,4,8,4,6,6,6,2,6,4,2,2,4,2,8,8,
499 8,6,8,2,8,8,6,8,2,4,4,8,4,6,4,4,8,4,6,8,
500 8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,6,2,6,4,2,
501 2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,
502 8,6,8,2,4,4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,
503 2,4,2,8,6,6,2,6,4,4,4,8,4,6,8,8,6,8,2,2,
504 2,4,2,8,2,2,4,2,8,6,6,2,6,4,2,2,4,2,8,4,
505 4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,8,6,8,2,8,
506 8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,
507 2,4,2,8,4,4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,
508 2,4,2,8,6,6,2,6,4,8,8,6,8,2,6,6,2,6,4,4,
509 4,8,4,6,4,4,8,4,6,2,2,4,2,8,8,8,6,8,2,6,
510 6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,2,4,2,8,8};
511 char f(int n);
512
513 int main(void)
514 {
515     #ifdef LOCAL
516         freopen("568in.txt", "r", stdin);
517         //freopen("568out.txt", "w", stdout);
518     #endif
519
520     int n;
521     while(cin >> n)
522     {
523         printf("%5d -> %d\n", n, b[n]);
524     }
525     return 0;
526 }

代码君

UVa 568 Just the Facts

时间: 2024-10-20 19:40:40

UVa 568 Just the Facts的相关文章

UVA 568 Just the Facts (阶乘)

题意:求一个数n的阶乘,其往后数第1个不是0的数字是多少. 思路:[1,n]逐个乘,出现后缀0就过滤掉,比如12300就变成123,继续算下去.为解决爆long long问题,将其余一个数mod,过滤掉前面过大的部分,因为计算出来也没用.这个mod应该是多少? 10亿就行. 1 #include <bits/stdc++.h> 2 #define LL long long 3 using namespace std; 4 const int N=10001; 5 const int mod=1

Just the Facts UVA 568

说说:这道题的题意是求出给定的N!(N<=10000)的第一个非零的数.可以想象10000!是非常可怕的,所以我开始的想法是将1~10000的结果都求出来保存在数组中,然后直接调用即可.而求结果的方法是从1开始键乘,且只保存结果的最后非零的两位.因为在很多情况下,第一个非零的数与太后面的数是没什么关系的.按照这个思路测试了一下,发现比较小的数没问题,当N逐渐变大的时候,后面就全乱了.原因应该是暂存的结果再乘以新的N的时候前两位就是0,所以最后的结果其实是与暂存结果的第三位数有关的,因此结果至少要

uva 568(数学)

题解:从1開始乘到n,由于结果仅仅要最后一位.所以每乘完一次,仅仅要保留后5位(少了值会不准确,刚開始仅仅保留了一位.结果到15就错了,保留多了int会溢出,比方3125就会出错) 和下一个数相乘,接着保留5位,注意5位没有后导零,最后取5位中最后一个不是零的就能够了. #include <iostream> #include <cstdio> using namespace std; int main() { int n; long int temp; while (scanf(

UVA题目分类

题目 Volume 0. Getting Started 开始10055 - Hashmat the Brave Warrior 10071 - Back to High School Physics 10300 - Ecological Premium 458 - The Decoder 494 - Kindergarten Counting Game 414 - Machined Surfaces 490 - Rotating Sentences 445 - Marvelous Mazes

uva 12232 - Exclusive-OR(加权并查集)

题目链接:uva 12232 - Exclusive-OR 题目大意:有n个数,一开始并不知道具体的值,现在进行Q次操作. I u k:au的值为k I u v k:au?av=k Q k q1q2-qk:求q1?q2-?qk 对于Q操作不能确定的话输出"I don't know." 对于I操作矛盾的话则输出是第几条I操作出现矛盾的,并且停止后面所有的操作. 解题思路:加权并查集,f[x]表示x节点父亲节点,d[x]表示x节点与其父节点的亦或值,对于确定的节点值,可以将父亲节点设为0,

UVA - 12232 Exclusive-OR (并查集扩展偏离向量)

Description You are not given n non-negative integersX0,X1,..., Xn-1 less than220, but they do exist, and their values never change. I'll gradually provide you some facts about them, and ask you some questions. There are two kinds of facts, plus one

UVA 12232 - Exclusive-OR(带权并查集)

UVA 12232 - Exclusive-OR 题目链接 题意:有n个数字.一開始值都不知道,每次给定一个操作,I a v表示确认a值为v,I a b v,表示确认a^b = v,Q k a1 a2 a3 ... ak.表示推断这些数字的异或值是否能确定.能确定就输出值,假设有矛盾就停止 思路:带权并查集,权表示和父结点的异或值,那么多数推断的时候,仅仅要全部数字和他的父结点的异或值的异或值.假设父结点的个数是偶数个.那么依据异或的性质能抵消掉,是能够判定的.假设不为偶数,就是不能判定. 注意

UVA 562 Dividing coins --01背包的变形

01背包的变形. 先算出硬币面值的总和,然后此题变成求背包容量为V=sum/2时,能装的最多的硬币,然后将剩余的面值和它相减取一个绝对值就是最小的差值. 代码: #include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <algorithm> using namespace std; #define N 50007 int c[102],d

UVA 10341 Solve It

Problem F Solve It Input: standard input Output: standard output Time Limit: 1 second Memory Limit: 32 MB Solve the equation: p*e-x + q*sin(x) + r*cos(x) + s*tan(x) + t*x2 + u = 0 where 0 <= x <= 1. Input Input consists of multiple test cases and te