Wprowadzenie
Dziesiętny kończy się, jeśli ma skończoną liczbę cyfr dziesiętnych. Na przykład 0,4 (2/5) kończy się, ponieważ ma jedną cyfrę dziesiętną.
Liczba dziesiętna jest czysto okresowa, jeśli ma nieskończoną liczbę cyfr dziesiętnych i nie ma cyfr dziesiętnych przed powtórzeniem (część dziesiętna, która się powtarza). Na przykład 0,142857142857142… (1/7) jest czysto okresowa, ponieważ ma powtarzalność 142857, który zaczyna się powtarzać natychmiast po przecinku.
Dziesiętny jest ostatecznie okresowy, jeśli ma nieskończoną liczbę cyfr dziesiętnych i ma skończoną liczbę cyfr dziesiętnych przed powtórzeniem (część dziesiętna, która się powtarza). Na przykład 0.166666666666666… (1/6) jest ostatecznie okresowy, ponieważ jego powtórzenie 6 zaczyna się powtarzać po 1.
Twoje zadanie
Napisz program lub funkcję, która, gdy otrzyma liczby p i q (liczby całkowite, 0 <= p < q <= 100), określi, czy dziesiętna reprezentacja p / q jest zakończona, czysto okresowa czy ewentualnie okresowa.
Musisz wyjście a
czy to kończące (czyli 0,1), b
jeśli jest to czysto Okresowe (czyli 0,333 ...), lub c
jeśli jest to Ostatecznie Okresowe (czyli 0,166 ...), gdzie a
, b
i c
są jakieś wyraźne, stałe ciągi wyboru.
Przypadki testowe
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
Można znaleźć wszystkie przypadki testowe tutaj .
Możesz wybrać własne 3 wartości wyjściowe, ale musi być jasne, która z nich jest.
Pamiętaj, że to jest golf golfowy , więc wygrywa kod z najmniejszą liczbą bajtów.
Poradnik
Zakończenie:
Faktoryzacja pierwotna mianownika kończącego dziesiętnego w najprostszej postaci składa się tylko z 2 i 5 s.
Czysto okresowe:
Faktoryzacja pierwotna mianownika czysto okresowego dziesiętnego w najprostszej postaci nie obejmuje żadnych 2s lub 5s.
Ostatecznie okresowe:
Faktoryzacja pierwotna mianownika ostatecznie okresowego dziesiętnego w najprostszej postaci obejmuje co najmniej jedną 2 lub 5, ale obejmuje także inne liczby.
Liderów
Oto fragment kodu, który pozwala wygenerować zarówno zwykłą tabelę wyników, jak i przegląd zwycięzców według języka.
Aby upewnić się, że twoja odpowiedź się pojawi, zacznij od nagłówka, korzystając z następującego szablonu Markdown:
# Language Name, N bytes
gdzie N
jest rozmiar twojego zgłoszenia. Jeśli poprawić swój wynik, to może zachować stare porachunki w nagłówku, uderzając je przez. Na przykład:
# Ruby, <s>104</s> <s>101</s> 96 bytes
Jeśli chcesz umieścić w nagłówku wiele liczb (np. Ponieważ twój wynik jest sumą dwóch plików lub chcesz osobno wymienić kary za flagi tłumacza), upewnij się, że rzeczywisty wynik jest ostatnią liczbą w nagłówku:
# Perl, 43 + 2 (-p flag) = 45 bytes
Możesz także ustawić nazwę języka jako link, który pojawi się we fragmencie tabeli wyników:
# [><>](http://esolangs.org/wiki/Fish), 121 bytes