Einführung
Eine Dezimalstelle endet, wenn sie eine endliche Anzahl von Dezimalstellen hat. Beispielsweise endet 0,4 (2/5), weil es eine Dezimalstelle hat.
Eine Dezimalstelle ist rein periodisch, wenn sie eine unendliche Anzahl von Dezimalstellen und keine Dezimalstellen vor ihrer Wiederholung aufweist (der sich wiederholende Teil der Dezimalstelle). Beispiel: 0,142857142857142… (1/7) ist rein periodisch, weil sie eine Wiederholung aufweist 142857, die unmittelbar nach dem Komma wiederholt wird.
Eine Dezimalstelle ist schließlich periodisch, wenn sie eine unendliche Anzahl von Dezimalstellen und eine endliche Anzahl von Dezimalstellen vor ihrer Wiederholung aufweist (der sich wiederholende Teil der Dezimalstelle). Beispiel: 0,16666666666666666… (1/6) ist schließlich periodisch, weil seine repetend 6 beginnt nach einer 1 zu wiederholen.
Deine Aufgabe
Schreiben Sie ein Programm oder eine Funktion, die bei Angabe der Zahlen p und q (ganze Zahlen, 0 <= p < q <= 100) bestimmt, ob die Dezimaldarstellung von p / q terminiert, rein periodisch oder schließlich periodisch ist.
Sie müssen ausgegeben , a
wenn es Terminating (dh 0,1), b
wenn es rein Periodic (dh 0,333 ...), oder c
wenn es schließlich Periodic (dh 0,166 ...), wo a
, b
und c
sind alle verschieden, konstante Strings Ihrer Wahl.
Testfälle
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
Sie können alle Testfälle finden hier .
Sie können Ihre eigenen 3 Werte für den Ausgang wählen, aber es muss klar sein, welcher es ist.
Denken Sie daran, dies ist Code-Golf , also gewinnt der Code mit der geringsten Anzahl von Bytes.
Hinweise
Beenden:
Die Primfaktorisierung des Nenners einer abschließenden Dezimalstelle besteht in einfachster Form nur aus 2s und 5s.
Rein periodisch:
Die Primfaktorisierung eines rein periodischen Dezimalnenners in einfachster Form enthält keine 2s oder 5s.
Eventuell periodisch:
Die Primfaktorisierung des Nenners einer eventuell periodischen Dezimalstelle enthält in einfachster Form mindestens eine 2 oder 5, aber auch andere Zahlen.
Bestenlisten
Hier ist ein Stack-Snippet, um sowohl eine reguläre Rangliste als auch eine Übersicht der Gewinner nach Sprache zu erstellen.
Um sicherzustellen, dass Ihre Antwort angezeigt wird, beginnen Sie Ihre Antwort mit einer Überschrift. Verwenden Sie dazu die folgende Markdown-Vorlage:
# Language Name, N bytes
Wo N
ist die Größe Ihres Beitrags? Wenn Sie Ihren Score zu verbessern, Sie können alte Rechnungen in der Überschrift halten, indem man sich durch das Anschlagen. Zum Beispiel:
# Ruby, <s>104</s> <s>101</s> 96 bytes
Wenn Sie mehrere Zahlen in Ihre Kopfzeile aufnehmen möchten (z. B. weil Ihre Punktzahl die Summe von zwei Dateien ist oder wenn Sie die Strafen für Interpreter-Flags separat auflisten möchten), stellen Sie sicher, dass die tatsächliche Punktzahl die letzte Zahl in der Kopfzeile ist:
# Perl, 43 + 2 (-p flag) = 45 bytes
Sie können den Namen der Sprache auch als Link festlegen, der dann im Leaderboard-Snippet angezeigt wird:
# [><>](http://esolangs.org/wiki/Fish), 121 bytes