Задача №1543. Вычисление факторивалов

Экспериментальным путем определите, факториал каких чисел может быть точно вычислен в 32-битном целом типе (integer в Delphi и longint в Borland Pascal), 64-битном целом типе (int64 в Delphi и comp в Borland Pascal) и типе extended (long double). Затем напишите программу, которая будет работать следующим образом. Сначала запрашивается число \(K\) — количество факториалов, которые надо вычислить (\(K \leq 100\)). Затем \(K\) раз считывается значение \(N\) (\(N \leq 100\)), для очередного \(N\) сразу вычисляется значение \(N!\), если это можно точно сделать хотя бы в одном из указанных типов данных, и выводятся в строке через пробел найденное значение факториала и число 1, 2 или 3 соответственно в зависимости от типа данных, в котором можно это значение посчитать точно (выводится минимально возможное значение). Если точно факториал в стандартной компьютерной арифметике вычислить невозможно, то выводится только 0.

Пример диалога программы:

3 {введено значение K}
3 {введено первое значение N}
6 1 {это вывод результата для первого факториала}
15 {введено второе значение N}
1307674368000 2 {это вывод результата для второго факториала}
100 {введено третье значение N}
0 {это вывод результата для третьего факториала}

Примеры
Входные данные
3
3
15
100
Выходные данные
6 1
1307674368000 2
0
Сдать: для сдачи задач необходимо войти в систему