Вступление
Десятичная дробь заканчивается, если она имеет конечное число десятичных цифр. Например, 0,4 (2/5) заканчивается, потому что у него одна десятичная цифра.
Десятичная дробь является чисто периодической, если она имеет бесконечное число десятичных цифр и не имеет десятичных цифр перед повторением (часть повторяющейся десятичной дроби). Например, 0,142857142857142… (1/7) является чисто периодической, потому что она имеет повторяемую 142857, который начинает повторяться сразу после десятичной точки.
Десятичная дробь в конечном итоге является периодической, если она имеет бесконечное число десятичных цифр и имеет конечное число десятичных цифр перед повторением (часть повторяющейся десятичной дроби). Например, 0,166666666666666… (1/6) в конечном итоге является периодической, поскольку ее повторение 6 начинает повторяться после 1.
Твое задание
Напишите программу или функцию, которая при заданных числах p и q (целые числа, 0 <= p < q <= 100) будет определять, является ли десятичное представление p / q завершающим, чисто периодическим или, в конечном счете, периодическим.
Вы должны выход , a
если он , истекающий (т.е. 0,1), b
если это чисто периодическая (т.е. 0,333 ...), или , c
если это в конечном счете Периодическая (т.е. 0,166 ...), где a
, b
и c
какие -то отдельные, константные строки вашего выбора.
Контрольные примеры
0/1 => Terminating
0/2 => Terminating
1/2 => Terminating
0/3 => Terminating
1/3 => Purely Periodic
2/3 => Purely Periodic
0/4 => Terminating
1/4 => Terminating
2/4 => Terminating
3/4 => Terminating
0/5 => Terminating
1/5 => Terminating
2/5 => Terminating
3/5 => Terminating
4/5 => Terminating
0/6 => Terminating
1/6 => Eventually Periodic
2/6 => Purely Periodic
3/6 => Terminating
4/6 => Purely Periodic
5/6 => Eventually Periodic
0/7 => Terminating
1/7 => Purely Periodic
2/7 => Purely Periodic
3/7 => Purely Periodic
4/7 => Purely Periodic
5/7 => Purely Periodic
6/7 => Purely Periodic
0/8 => Terminating
1/8 => Terminating
2/8 => Terminating
3/8 => Terminating
4/8 => Terminating
5/8 => Terminating
6/8 => Terminating
7/8 => Terminating
0/9 => Terminating
1/9 => Purely Periodic
2/9 => Purely Periodic
3/9 => Purely Periodic
4/9 => Purely Periodic
5/9 => Purely Periodic
6/9 => Purely Periodic
7/9 => Purely Periodic
8/9 => Purely Periodic
0/10 => Terminating
1/10 => Terminating
2/10 => Terminating
3/10 => Terminating
4/10 => Terminating
5/10 => Terminating
6/10 => Terminating
7/10 => Terminating
8/10 => Terminating
9/10 => Terminating
0/11 => Terminating
1/11 => Purely Periodic
2/11 => Purely Periodic
3/11 => Purely Periodic
4/11 => Purely Periodic
5/11 => Purely Periodic
6/11 => Purely Periodic
7/11 => Purely Periodic
8/11 => Purely Periodic
9/11 => Purely Periodic
10/11 => Purely Periodic
0/12 => Terminating
1/12 => Eventually Periodic
2/12 => Eventually Periodic
3/12 => Terminating
4/12 => Purely Periodic
5/12 => Eventually Periodic
6/12 => Terminating
7/12 => Eventually Periodic
8/12 => Purely Periodic
9/12 => Terminating
10/12 => Eventually Periodic
11/12 => Eventually Periodic
0/13 => Terminating
1/13 => Purely Periodic
2/13 => Purely Periodic
3/13 => Purely Periodic
4/13 => Purely Periodic
5/13 => Purely Periodic
6/13 => Purely Periodic
7/13 => Purely Periodic
8/13 => Purely Periodic
9/13 => Purely Periodic
10/13 => Purely Periodic
11/13 => Purely Periodic
12/13 => Purely Periodic
0/14 => Terminating
1/14 => Eventually Periodic
2/14 => Purely Periodic
3/14 => Eventually Periodic
4/14 => Purely Periodic
5/14 => Eventually Periodic
6/14 => Purely Periodic
7/14 => Terminating
8/14 => Purely Periodic
9/14 => Eventually Periodic
10/14 => Purely Periodic
11/14 => Eventually Periodic
12/14 => Purely Periodic
13/14 => Eventually Periodic
0/15 => Terminating
1/15 => Eventually Periodic
2/15 => Eventually Periodic
3/15 => Terminating
4/15 => Eventually Periodic
5/15 => Purely Periodic
6/15 => Terminating
7/15 => Eventually Periodic
8/15 => Eventually Periodic
9/15 => Terminating
10/15 => Purely Periodic
11/15 => Eventually Periodic
12/15 => Terminating
13/15 => Eventually Periodic
14/15 => Eventually Periodic
Вы можете найти все тестовые примеры здесь .
Вам разрешено выбирать свои 3 значения для вывода, но должно быть ясно, какое из них это.
Помните, что это код-гольф , поэтому выигрывает код с наименьшим количеством байтов.
Советы
Нагрузочный:
Простая факторизация конечного десятичного знаменателя в простейшей форме состоит только из 2-х и 5-х.
Чисто периодический:
Простая факторизация чисто периодического десятичного знаменателя в простейшей форме не включает в себя любые 2 или 5.
В конце концов, периодические:
Простая факторизация знаменателя конечного периодического десятичного числа в простейшей форме включает в себя, по меньшей мере, одно 2 или 5, но также включает и другие числа.
Leaderboards
Вот фрагмент стека, который генерирует как регулярную таблицу лидеров, так и обзор победителей по языкам.
Чтобы убедиться, что ваш ответ обнаружен, начните его с заголовка, используя следующий шаблон уценки:
# Language Name, N bytes
где N
размер вашего представления. Если вы улучшите свой счет, вы можете сохранить старые результаты в заголовке, вычеркнув их. Например:
# Ruby, <s>104</s> <s>101</s> 96 bytes
Если вы хотите включить в заголовок несколько чисел (например, потому что ваш результат равен сумме двух файлов или вы хотите перечислить штрафы за флаг интерпретатора отдельно), убедитесь, что фактический результат является последним числом в заголовке:
# Perl, 43 + 2 (-p flag) = 45 bytes
Вы также можете сделать название языка ссылкой, которая затем будет отображаться во фрагменте списка лидеров:
# [><>](http://esolangs.org/wiki/Fish), 121 bytes