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,

NN!
01
11
22
36
424
5120
103628800

For this problem, you are to write a program that can compute the last non-zero digit of any factorial for ( $0 \le N \le 10000$). 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

打表代码:

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;

int a[40000], b[10000 + 10];
int f(int n);

int main(void)
{
	freopen("asdasd.txt", "w", stdout);
	a[0] = 1;
	b[0] = b[1] = 1;
	int i;
	for(i = 2; i <= 10000; ++i)
	{	//乘以i
		int k = i, c = 0;
		while(k % 10 == 0)
			k /= 10;
		for(int j = 0; j < 40000; ++j)
		{
			int s = a[j] * k + c;
			a[j] = s % 10;
			c = s / 10;
		}
		b[i] = f(i);
	}
	for(i = 0; i <= 10000; ++i)
	{
		printf("%d,", b[i]);
		if(i % 20 == 0)
			printf("\n");
	}

	return 0;
}
//求n!的第一个非0的数
int f(int n)
{
	int i;
	for(i = 0; i <= 40000; ++i)
		if(a[i] != 0)
			break;
	return a[i];
}


无耻的贴一下AC代码:

//#define LOCAL
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;

const int maxn = 40000 + 10;
int a[maxn];		//存放阶乘的结果
//存放b[i]阶乘的最后一位非0的数
char b[10000 + 10] = {1,
1,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
4,8,4,6,4,4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,
2,4,2,8,6,6,2,6,4,2,2,4,2,8,4,4,8,4,6,6,
6,2,6,4,6,6,2,6,4,8,8,6,8,2,4,4,8,4,6,8,
8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,6,2,6,4,4,
4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
6,2,6,4,8,8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,
4,8,4,6,2,2,4,2,8,2,2,4,2,8,4,4,8,4,6,6,
6,2,6,4,6,6,2,6,4,8,8,6,8,2,6,6,2,6,4,2,
2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,4,8,4,6,2,
2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,
8,6,8,2,2,2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,
6,2,6,4,8,8,6,8,2,8,8,6,8,2,6,6,2,6,4,4,
4,8,4,6,4,4,8,4,6,2,2,4,2,8,2,2,4,2,8,4,
4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,8,6,8,2,6,
6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
4,8,4,6,2,2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,
6,2,6,4,8,8,6,8,2,2,2,4,2,8,4,4,8,4,6,6,
6,2,6,4,6,6,2,6,4,8,8,6,8,2,2,2,4,2,8,4,
4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,8,6,8,2,8,
8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,
2,4,2,8,4,4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,
2,4,2,8,6,6,2,6,4,8,8,6,8,2,6,6,2,6,4,4,
4,8,4,6,4,4,8,4,6,2,2,4,2,8,8,8,6,8,2,6,
6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,2,4,2,8,4,
4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
6,2,6,4,6,6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,
8,6,8,2,4,4,8,4,6,8,8,6,8,2,6,6,2,6,4,4,
4,8,4,6,4,4,8,4,6,2,2,4,2,8,6,6,2,6,4,2,
2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,4,8,4,6,6,
6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
4,8,4,6,6,6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,
8,6,8,2,4,4,8,4,6,4,4,8,4,6,8,8,6,8,2,2,
2,4,2,8,2,2,4,2,8,6,6,2,6,4,2,2,4,2,8,4,
4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,8,6,8,2,4,
4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
6,2,6,4,4,4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,
2,4,2,8,6,6,2,6,4,8,8,6,8,2,6,6,2,6,4,4,
4,8,4,6,4,4,8,4,6,2,2,4,2,8,2,2,4,2,8,4,
4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,8,6,8,2,6,
6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
4,8,4,6,2,2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,
6,2,6,4,8,8,6,8,2,2,2,4,2,8,4,4,8,4,6,6,
6,2,6,4,6,6,2,6,4,8,8,6,8,2,8,8,6,8,2,6,
6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,2,4,2,8,2,
2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,
8,6,8,2,6,6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,
8,6,8,2,4,4,8,4,6,2,2,4,2,8,4,4,8,4,6,6,
6,2,6,4,6,6,2,6,4,8,8,6,8,2,2,2,4,2,8,4,
4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,8,6,8,2,2,
2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,
8,6,8,2,8,8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,
4,8,4,6,2,2,4,2,8,4,4,8,4,6,8,8,6,8,2,2,
2,4,2,8,2,2,4,2,8,6,6,2,6,4,8,8,6,8,2,6,
6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,2,4,2,8,8,
8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,
2,4,2,8,4,4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,
2,4,2,8,6,6,2,6,4,6,6,2,6,4,2,2,4,2,8,8,
8,6,8,2,8,8,6,8,2,4,4,8,4,6,8,8,6,8,2,6,
6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,2,4,2,8,6,
6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
4,8,4,6,6,6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,
8,6,8,2,4,4,8,4,6,2,2,4,2,8,4,4,8,4,6,6,
6,2,6,4,6,6,2,6,4,8,8,6,8,2,8,8,6,8,2,6,
6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,2,4,2,8,4,
4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
6,2,6,4,8,8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,
4,8,4,6,2,2,4,2,8,8,8,6,8,2,6,6,2,6,4,4,
4,8,4,6,4,4,8,4,6,2,2,4,2,8,6,6,2,6,4,2,
2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,4,8,4,6,4,
4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
6,2,6,4,2,2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,
6,2,6,4,8,8,6,8,2,4,4,8,4,6,8,8,6,8,2,2,
2,4,2,8,2,2,4,2,8,6,6,2,6,4,4,4,8,4,6,8,
8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,6,2,6,4,6,
6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
4,8,4,6,4,4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,
2,4,2,8,6,6,2,6,4,2,2,4,2,8,4,4,8,4,6,6,
6,2,6,4,6,6,2,6,4,8,8,6,8,2,4,4,8,4,6,8,
8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,6,2,6,4,4,
4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
6,2,6,4,4,4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,
2,4,2,8,6,6,2,6,4,6,6,2,6,4,2,2,4,2,8,8,
8,6,8,2,8,8,6,8,2,4,4,8,4,6,8,8,6,8,2,6,
6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,2,4,2,8,6,
6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
4,8,4,6,6,6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,
8,6,8,2,4,4,8,4,6,8,8,6,8,2,6,6,2,6,4,4,
4,8,4,6,4,4,8,4,6,2,2,4,2,8,2,2,4,2,8,4,
4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,8,6,8,2,6,
6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
4,8,4,6,2,2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,
6,2,6,4,8,8,6,8,2,2,2,4,2,8,4,4,8,4,6,6,
6,2,6,4,6,6,2,6,4,8,8,6,8,2,6,6,2,6,4,2,
2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,4,8,4,6,4,
4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
6,2,6,4,2,2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,
6,2,6,4,8,8,6,8,2,4,4,8,4,6,8,8,6,8,2,2,
2,4,2,8,2,2,4,2,8,6,6,2,6,4,4,4,8,4,6,8,
8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,6,2,6,4,8,
8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,
2,4,2,8,2,2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,
6,2,6,4,8,8,6,8,2,6,6,2,6,4,2,2,4,2,8,8,
8,6,8,2,8,8,6,8,2,4,4,8,4,6,2,2,4,2,8,4,
4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,8,6,8,2,2,
2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,
8,6,8,2,8,8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,
4,8,4,6,2,2,4,2,8,2,2,4,2,8,4,4,8,4,6,6,
6,2,6,4,6,6,2,6,4,8,8,6,8,2,6,6,2,6,4,2,
2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,4,8,4,6,2,
2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,
8,6,8,2,2,2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,
6,2,6,4,8,8,6,8,2,2,2,4,2,8,4,4,8,4,6,6,
6,2,6,4,6,6,2,6,4,8,8,6,8,2,8,8,6,8,2,6,
6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,2,4,2,8,4,
4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
6,2,6,4,8,8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,
4,8,4,6,2,2,4,2,8,8,8,6,8,2,6,6,2,6,4,4,
4,8,4,6,4,4,8,4,6,2,2,4,2,8,4,4,8,4,6,8,
8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,6,2,6,4,6,
6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
4,8,4,6,8,8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,
4,8,4,6,2,2,4,2,8,6,6,2,6,4,2,2,4,2,8,8,
8,6,8,2,8,8,6,8,2,4,4,8,4,6,6,6,2,6,4,2,
2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,4,8,4,6,4,
4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
6,2,6,4,6,6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,
8,6,8,2,4,4,8,4,6,8,8,6,8,2,6,6,2,6,4,4,
4,8,4,6,4,4,8,4,6,2,2,4,2,8,6,6,2,6,4,2,
2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,4,8,4,6,6,
6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
4,8,4,6,2,2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,
6,2,6,4,8,8,6,8,2,8,8,6,8,2,6,6,2,6,4,4,
4,8,4,6,4,4,8,4,6,2,2,4,2,8,4,4,8,4,6,8,
8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,6,2,6,4,8,
8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,
2,4,2,8,8,8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,
4,8,4,6,2,2,4,2,8,2,2,4,2,8,4,4,8,4,6,6,
6,2,6,4,6,6,2,6,4,8,8,6,8,2,8,8,6,8,2,6,
6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,2,4,2,8,4,
4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
6,2,6,4,8,8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,
4,8,4,6,2,2,4,2,8,8,8,6,8,2,6,6,2,6,4,4,
4,8,4,6,4,4,8,4,6,2,2,4,2,8,8,8,6,8,2,6,
6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,2,4,2,8,2,
2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,
8,6,8,2,6,6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,
8,6,8,2,4,4,8,4,6,2,2,4,2,8,4,4,8,4,6,6,
6,2,6,4,6,6,2,6,4,8,8,6,8,2,2,2,4,2,8,4,
4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,8,6,8,2,6,
6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
4,8,4,6,4,4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,
2,4,2,8,6,6,2,6,4,2,2,4,2,8,4,4,8,4,6,6,
6,2,6,4,6,6,2,6,4,8,8,6,8,2,4,4,8,4,6,8,
8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,6,2,6,4,4,
4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
6,2,6,4,2,2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,
6,2,6,4,8,8,6,8,2,8,8,6,8,2,6,6,2,6,4,4,
4,8,4,6,4,4,8,4,6,2,2,4,2,8,4,4,8,4,6,8,
8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,6,2,6,4,8,
8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,
2,4,2,8,8,8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,
4,8,4,6,2,2,4,2,8,6,6,2,6,4,2,2,4,2,8,8,
8,6,8,2,8,8,6,8,2,4,4,8,4,6,4,4,8,4,6,8,
8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,6,2,6,4,2,
2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,
8,6,8,2,4,4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,
2,4,2,8,6,6,2,6,4,4,4,8,4,6,8,8,6,8,2,2,
2,4,2,8,2,2,4,2,8,6,6,2,6,4,6,6,2,6,4,2,
2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,4,8,4,6,4,
4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
6,2,6,4,2,2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,
6,2,6,4,8,8,6,8,2,4,4,8,4,6,8,8,6,8,2,2,
2,4,2,8,2,2,4,2,8,6,6,2,6,4,4,4,8,4,6,8,
8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,6,2,6,4,4,
4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
6,2,6,4,6,6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,
8,6,8,2,4,4,8,4,6,8,8,6,8,2,6,6,2,6,4,4,
4,8,4,6,4,4,8,4,6,2,2,4,2,8,6,6,2,6,4,2,
2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,4,8,4,6,6,
6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
4,8,4,6,8,8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,
4,8,4,6,2,2,4,2,8,2,2,4,2,8,4,4,8,4,6,6,
6,2,6,4,6,6,2,6,4,8,8,6,8,2,6,6,2,6,4,2,
2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,4,8,4,6,2,
2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,
8,6,8,2,2,2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,
6,2,6,4,8,8,6,8,2,2,2,4,2,8,4,4,8,4,6,6,
6,2,6,4,6,6,2,6,4,8,8,6,8,2,8,8,6,8,2,6,
6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,2,4,2,8,4,
4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
6,2,6,4,8,8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,
4,8,4,6,2,2,4,2,8,8,8,6,8,2,6,6,2,6,4,4,
4,8,4,6,4,4,8,4,6,2,2,4,2,8,6,6,2,6,4,2,
2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,4,8,4,6,4,
4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
6,2,6,4,2,2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,
6,2,6,4,8,8,6,8,2,4,4,8,4,6,8,8,6,8,2,2,
2,4,2,8,2,2,4,2,8,6,6,2,6,4,4,4,8,4,6,8,
8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,6,2,6,4,6,
6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
4,8,4,6,4,4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,
2,4,2,8,6,6,2,6,4,2,2,4,2,8,4,4,8,4,6,6,
6,2,6,4,6,6,2,6,4,8,8,6,8,2,4,4,8,4,6,8,
8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,6,2,6,4,4,
4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
6,2,6,4,4,4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,
2,4,2,8,6,6,2,6,4,6,6,2,6,4,2,2,4,2,8,8,
8,6,8,2,8,8,6,8,2,4,4,8,4,6,8,8,6,8,2,6,
6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,2,4,2,8,6,
6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
4,8,4,6,6,6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,
8,6,8,2,4,4,8,4,6,8,8,6,8,2,6,6,2,6,4,4,
4,8,4,6,4,4,8,4,6,2,2,4,2,8,2,2,4,2,8,4,
4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,8,6,8,2,6,
6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
4,8,4,6,2,2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,
6,2,6,4,8,8,6,8,2,2,2,4,2,8,4,4,8,4,6,6,
6,2,6,4,6,6,2,6,4,8,8,6,8,2,4,4,8,4,6,8,
8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,6,2,6,4,6,
6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
4,8,4,6,8,8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,
4,8,4,6,2,2,4,2,8,6,6,2,6,4,2,2,4,2,8,8,
8,6,8,2,8,8,6,8,2,4,4,8,4,6,6,6,2,6,4,2,
2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,4,8,4,6,2,
2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,
8,6,8,2,8,8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,
4,8,4,6,2,2,4,2,8,4,4,8,4,6,8,8,6,8,2,2,
2,4,2,8,2,2,4,2,8,6,6,2,6,4,8,8,6,8,2,6,
6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,2,4,2,8,8,
8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,
2,4,2,8,2,2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,
6,2,6,4,8,8,6,8,2,8,8,6,8,2,6,6,2,6,4,4,
4,8,4,6,4,4,8,4,6,2,2,4,2,8,4,4,8,4,6,8,
8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,6,2,6,4,8,
8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,
2,4,2,8,8,8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,
4,8,4,6,2,2,4,2,8,8,8,6,8,2,6,6,2,6,4,4,
4,8,4,6,4,4,8,4,6,2,2,4,2,8,2,2,4,2,8,4,
4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,8,6,8,2,6,
6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
4,8,4,6,2,2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,
6,2,6,4,8,8,6,8,2,2,2,4,2,8,4,4,8,4,6,6,
6,2,6,4,6,6,2,6,4,8,8,6,8,2,6,6,2,6,4,2,
2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,4,8,4,6,4,
4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
6,2,6,4,2,2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,
6,2,6,4,8,8,6,8,2,4,4,8,4,6,8,8,6,8,2,2,
2,4,2,8,2,2,4,2,8,6,6,2,6,4,4,4,8,4,6,8,
8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,6,2,6,4,2,
2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,
8,6,8,2,8,8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,
4,8,4,6,2,2,4,2,8,4,4,8,4,6,8,8,6,8,2,2,
2,4,2,8,2,2,4,2,8,6,6,2,6,4,8,8,6,8,2,6,
6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,2,4,2,8,8,
8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,
2,4,2,8,6,6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,
8,6,8,2,4,4,8,4,6,4,4,8,4,6,8,8,6,8,2,2,
2,4,2,8,2,2,4,2,8,6,6,2,6,4,2,2,4,2,8,4,
4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,8,6,8,2,4,
4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
6,2,6,4,4,4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,
2,4,2,8,6,6,2,6,4,6,6,2,6,4,2,2,4,2,8,8,
8,6,8,2,8,8,6,8,2,4,4,8,4,6,4,4,8,4,6,8,
8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,6,2,6,4,2,
2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,
8,6,8,2,4,4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,
2,4,2,8,6,6,2,6,4,4,4,8,4,6,8,8,6,8,2,2,
2,4,2,8,2,2,4,2,8,6,6,2,6,4,4,4,8,4,6,8,
8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,6,2,6,4,6,
6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
4,8,4,6,8,8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,
4,8,4,6,2,2,4,2,8,6,6,2,6,4,2,2,4,2,8,8,
8,6,8,2,8,8,6,8,2,4,4,8,4,6,6,6,2,6,4,2,
2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,4,8,4,6,8,
8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,
2,4,2,8,2,2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,
6,2,6,4,8,8,6,8,2,6,6,2,6,4,2,2,4,2,8,8,
8,6,8,2,8,8,6,8,2,4,4,8,4,6,2,2,4,2,8,4,
4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,8,6,8,2,2,
2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,
8,6,8,2,8,8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,
4,8,4,6,2,2,4,2,8,2,2,4,2,8,4,4,8,4,6,6,
6,2,6,4,6,6,2,6,4,8,8,6,8,2,6,6,2,6,4,2,
2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,4,8,4,6,2,
2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,
8,6,8,2,2,2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,
6,2,6,4,8,8,6,8,2,4,4,8,4,6,8,8,6,8,2,2,
2,4,2,8,2,2,4,2,8,6,6,2,6,4,6,6,2,6,4,2,
2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,4,8,4,6,8,
8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,
2,4,2,8,6,6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,
8,6,8,2,4,4,8,4,6,6,6,2,6,4,2,2,4,2,8,8,
8,6,8,2,8,8,6,8,2,4,4,8,4,6,4,4,8,4,6,8,
8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,6,2,6,4,6,
6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
4,8,4,6,8,8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,
4,8,4,6,2,2,4,2,8,6,6,2,6,4,2,2,4,2,8,8,
8,6,8,2,8,8,6,8,2,4,4,8,4,6,6,6,2,6,4,2,
2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,4,8,4,6,6,
6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
4,8,4,6,4,4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,
2,4,2,8,6,6,2,6,4,2,2,4,2,8,4,4,8,4,6,6,
6,2,6,4,6,6,2,6,4,8,8,6,8,2,4,4,8,4,6,8,
8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,6,2,6,4,4,
4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
6,2,6,4,2,2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,
6,2,6,4,8,8,6,8,2,8,8,6,8,2,6,6,2,6,4,4,
4,8,4,6,4,4,8,4,6,2,2,4,2,8,4,4,8,4,6,8,
8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,6,2,6,4,8,
8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,
2,4,2,8,8,8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,
4,8,4,6,2,2,4,2,8,8,8,6,8,2,6,6,2,6,4,4,
4,8,4,6,4,4,8,4,6,2,2,4,2,8,2,2,4,2,8,4,
4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,8,6,8,2,6,
6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
4,8,4,6,2,2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,
6,2,6,4,8,8,6,8,2,2,2,4,2,8,4,4,8,4,6,6,
6,2,6,4,6,6,2,6,4,8,8,6,8,2,4,4,8,4,6,8,
8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,6,2,6,4,6,
6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
4,8,4,6,8,8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,
4,8,4,6,2,2,4,2,8,6,6,2,6,4,2,2,4,2,8,8,
8,6,8,2,8,8,6,8,2,4,4,8,4,6,6,6,2,6,4,2,
2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,4,8,4,6,4,
4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
6,2,6,4,6,6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,
8,6,8,2,4,4,8,4,6,8,8,6,8,2,6,6,2,6,4,4,
4,8,4,6,4,4,8,4,6,2,2,4,2,8,6,6,2,6,4,2,
2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,4,8,4,6,6,
6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
4,8,4,6,6,6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,
8,6,8,2,4,4,8,4,6,4,4,8,4,6,8,8,6,8,2,2,
2,4,2,8,2,2,4,2,8,6,6,2,6,4,2,2,4,2,8,4,
4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,8,6,8,2,4,
4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
6,2,6,4,4,4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,
2,4,2,8,6,6,2,6,4,2,2,4,2,8,4,4,8,4,6,6,
6,2,6,4,6,6,2,6,4,8,8,6,8,2,8,8,6,8,2,6,
6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,2,4,2,8,4,
4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
6,2,6,4,8,8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,
4,8,4,6,2,2,4,2,8,8,8,6,8,2,6,6,2,6,4,4,
4,8,4,6,4,4,8,4,6,2,2,4,2,8,8,8,6,8,2,6,
6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,2,4,2,8,2,
2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,
8,6,8,2,6,6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,
8,6,8,2,4,4,8,4,6,2,2,4,2,8,4,4,8,4,6,6,
6,2,6,4,6,6,2,6,4,8,8,6,8,2,2,2,4,2,8,4,
4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,8,6,8,2,4,
4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
6,2,6,4,6,6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,
8,6,8,2,4,4,8,4,6,8,8,6,8,2,6,6,2,6,4,4,
4,8,4,6,4,4,8,4,6,2,2,4,2,8,6,6,2,6,4,2,
2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,4,8,4,6,6,
6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
4,8,4,6,4,4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,
2,4,2,8,6,6,2,6,4,6,6,2,6,4,2,2,4,2,8,8,
8,6,8,2,8,8,6,8,2,4,4,8,4,6,8,8,6,8,2,6,
6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,2,4,2,8,6,
6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
4,8,4,6,6,6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,
8,6,8,2,4,4,8,4,6,6,6,2,6,4,2,2,4,2,8,8,
8,6,8,2,8,8,6,8,2,4,4,8,4,6,4,4,8,4,6,8,
8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,6,2,6,4,2,
2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,
8,6,8,2,4,4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,
2,4,2,8,6,6,2,6,4,4,4,8,4,6,8,8,6,8,2,2,
2,4,2,8,2,2,4,2,8,6,6,2,6,4,2,2,4,2,8,4,
4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,8,6,8,2,8,
8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,
2,4,2,8,4,4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,
2,4,2,8,6,6,2,6,4,8,8,6,8,2,6,6,2,6,4,4,
4,8,4,6,4,4,8,4,6,2,2,4,2,8,8,8,6,8,2,6,
6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,2,4,2,8,6,
6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
4,8,4,6,4,4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,
2,4,2,8,6,6,2,6,4,2,2,4,2,8,4,4,8,4,6,6,
6,2,6,4,6,6,2,6,4,8,8,6,8,2,4,4,8,4,6,8,
8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,6,2,6,4,4,
4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
6,2,6,4,8,8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,
4,8,4,6,2,2,4,2,8,2,2,4,2,8,4,4,8,4,6,6,
6,2,6,4,6,6,2,6,4,8,8,6,8,2,6,6,2,6,4,2,
2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,4,8,4,6,2,
2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,
8,6,8,2,2,2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,
6,2,6,4,8,8,6,8,2,8,8,6,8,2,6,6,2,6,4,4,
4,8,4,6,4,4,8,4,6,2,2,4,2,8,2,2,4,2,8,4,
4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,8,6,8,2,6,
6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
4,8,4,6,2,2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,
6,2,6,4,8,8,6,8,2,2,2,4,2,8,4,4,8,4,6,6,
6,2,6,4,6,6,2,6,4,8,8,6,8,2,2,2,4,2,8,4,
4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,8,6,8,2,8,
8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,
2,4,2,8,4,4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,
2,4,2,8,6,6,2,6,4,8,8,6,8,2,6,6,2,6,4,4,
4,8,4,6,4,4,8,4,6,2,2,4,2,8,8,8,6,8,2,6,
6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,2,4,2,8,4,
4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
6,2,6,4,6,6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,
8,6,8,2,4,4,8,4,6,8,8,6,8,2,6,6,2,6,4,4,
4,8,4,6,4,4,8,4,6,2,2,4,2,8,6,6,2,6,4,2,
2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,4,8,4,6,6,
6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
4,8,4,6,8,8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,
4,8,4,6,2,2,4,2,8,2,2,4,2,8,4,4,8,4,6,6,
6,2,6,4,6,6,2,6,4,8,8,6,8,2,6,6,2,6,4,2,
2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,4,8,4,6,2,
2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,
8,6,8,2,2,2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,
6,2,6,4,8,8,6,8,2,4,4,8,4,6,8,8,6,8,2,2,
2,4,2,8,2,2,4,2,8,6,6,2,6,4,6,6,2,6,4,2,
2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,4,8,4,6,8,
8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,
2,4,2,8,6,6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,
8,6,8,2,4,4,8,4,6,6,6,2,6,4,2,2,4,2,8,8,
8,6,8,2,8,8,6,8,2,4,4,8,4,6,4,4,8,4,6,8,
8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,6,2,6,4,6,
6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
4,8,4,6,8,8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,
4,8,4,6,2,2,4,2,8,6,6,2,6,4,2,2,4,2,8,8,
8,6,8,2,8,8,6,8,2,4,4,8,4,6,6,6,2,6,4,2,
2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,4,8,4,6,6,
6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
4,8,4,6,4,4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,
2,4,2,8,6,6,2,6,4,2,2,4,2,8,4,4,8,4,6,6,
6,2,6,4,6,6,2,6,4,8,8,6,8,2,4,4,8,4,6,8,
8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,6,2,6,4,4,
4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
6,2,6,4,2,2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,
6,2,6,4,8,8,6,8,2,8,8,6,8,2,6,6,2,6,4,4,
4,8,4,6,4,4,8,4,6,2,2,4,2,8,4,4,8,4,6,8,
8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,6,2,6,4,8,
8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,
2,4,2,8,8,8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,
4,8,4,6,2,2,4,2,8,2,2,4,2,8,4,4,8,4,6,6,
6,2,6,4,6,6,2,6,4,8,8,6,8,2,8,8,6,8,2,6,
6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,2,4,2,8,4,
4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
6,2,6,4,8,8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,
4,8,4,6,2,2,4,2,8,8,8,6,8,2,6,6,2,6,4,4,
4,8,4,6,4,4,8,4,6,2,2,4,2,8,6,6,2,6,4,2,
2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,4,8,4,6,4,
4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
6,2,6,4,2,2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,
6,2,6,4,8,8,6,8,2,4,4,8,4,6,8,8,6,8,2,2,
2,4,2,8,2,2,4,2,8,6,6,2,6,4,4,4,8,4,6,8,
8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,6,2,6,4,6,
6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
4,8,4,6,4,4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,
2,4,2,8,6,6,2,6,4,2,2,4,2,8,4,4,8,4,6,6,
6,2,6,4,6,6,2,6,4,8,8,6,8,2,4,4,8,4,6,8,
8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,6,2,6,4,4,
4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
6,2,6,4,4,4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,
2,4,2,8,6,6,2,6,4,6,6,2,6,4,2,2,4,2,8,8,
8,6,8,2,8,8,6,8,2,4,4,8,4,6,8,8,6,8,2,6,
6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,2,4,2,8,6,
6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
4,8,4,6,6,6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,
8,6,8,2,4,4,8,4,6,8,8,6,8,2,6,6,2,6,4,4,
4,8,4,6,4,4,8,4,6,2,2,4,2,8,2,2,4,2,8,4,
4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,8,6,8,2,6,
6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
4,8,4,6,2,2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,
6,2,6,4,8,8,6,8,2,2,2,4,2,8,4,4,8,4,6,6,
6,2,6,4,6,6,2,6,4,8,8,6,8,2,8,8,6,8,2,6,
6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,2,4,2,8,2,
2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,
8,6,8,2,6,6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,
8,6,8,2,4,4,8,4,6,2,2,4,2,8,4,4,8,4,6,6,
6,2,6,4,6,6,2,6,4,8,8,6,8,2,2,2,4,2,8,4,
4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,8,6,8,2,4,
4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,
6,2,6,4,6,6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,
8,6,8,2,4,4,8,4,6,8,8,6,8,2,6,6,2,6,4,4,
4,8,4,6,4,4,8,4,6,2,2,4,2,8,6,6,2,6,4,2,
2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,4,8,4,6,6,
6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
4,8,4,6,4,4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,
2,4,2,8,6,6,2,6,4,6,6,2,6,4,2,2,4,2,8,8,
8,6,8,2,8,8,6,8,2,4,4,8,4,6,8,8,6,8,2,6,
6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,2,4,2,8,6,
6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,8,6,8,2,4,
4,8,4,6,6,6,2,6,4,2,2,4,2,8,8,8,6,8,2,8,
8,6,8,2,4,4,8,4,6,6,6,2,6,4,2,2,4,2,8,8,
8,6,8,2,8,8,6,8,2,4,4,8,4,6,4,4,8,4,6,8,
8,6,8,2,2,2,4,2,8,2,2,4,2,8,6,6,2,6,4,2,
2,4,2,8,4,4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,
8,6,8,2,4,4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,
2,4,2,8,6,6,2,6,4,4,4,8,4,6,8,8,6,8,2,2,
2,4,2,8,2,2,4,2,8,6,6,2,6,4,2,2,4,2,8,4,
4,8,4,6,6,6,2,6,4,6,6,2,6,4,8,8,6,8,2,8,
8,6,8,2,6,6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,
2,4,2,8,4,4,8,4,6,8,8,6,8,2,2,2,4,2,8,2,
2,4,2,8,6,6,2,6,4,8,8,6,8,2,6,6,2,6,4,4,
4,8,4,6,4,4,8,4,6,2,2,4,2,8,8,8,6,8,2,6,
6,2,6,4,4,4,8,4,6,4,4,8,4,6,2,2,4,2,8,8};		
char f(int n);

int main(void)
{
	#ifdef LOCAL
		freopen("568in.txt", "r", stdin);
		//freopen("568out.txt", "w", stdout);
	#endif

	int n;
	while(cin >> n)
	{
		printf("%5d -> %d\n", n, b[n]);
	}
	return 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,

NN!
01
11
22
36
424
5120
103628800

For this problem, you are to write a program that can compute the last non-zero digit of any factorial for ( $0 \le N \le 10000$). 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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值