Wprowadzenie
Odwróć i dodaj jest tak proste, jak się wydaje, weź n
i dodaj do cyfr w odwrotnej kolejności. (np. 234 + 432 = 666).
Jeśli zastosujesz ten proces wielokrotnie, niektóre liczby ostatecznie osiągną liczbę pierwszą, a niektóre nigdy nie osiągną liczby pierwszej.
Przykład
Obecnie mam
11431 rep.
11431 is not prime
11431 + 13411 = 24842 which is not prime
24842 + 24842 = 49684 which is not prime
49684 + 48694 = 98378 which is not prime
98378 + 87389 = 185767 which is prime!
Ta liczba uderza w liczbę pierwszą
W przeciwieństwie do tego, żadna wielokrotność 3 nigdy nie trafi liczby pierwszej, ponieważ wszystkie wielokrotności 3 mają sumę cyfr, która jest wielokrotnością 3 i odwrotnie. Zatem odwrócenie i dodanie wielokrotności 3 zawsze spowoduje powstanie nowej wielokrotności 3, a zatem nigdy liczby pierwszej.
Zadanie
Weź dodatnią liczbę całkowitą n
i ustal, czy wielokrotne cofanie i dodawanie spowoduje kiedykolwiek liczbę pierwszą. Podaj wartość prawdy lub fałszu. Albo prawda jak dla osiąga wartość pierwszą, a fałsz dla nie lub na odwrót oba są dopuszczalne.
Liczby pierwsze będą uznawane za osiągające liczbę pierwszą w zerowych iteracjach.
To jest golf golfowy, więc postaraj się, aby Twój kod był jak najkrótszy.
Przypadki testowe
Prawda dla osiąga liczbę pierwszą fałsz, ponieważ nigdy nie osiąga liczby pierwszej
11 -> True
11431 -> True
13201 -> True
13360 -> True
13450 -> True
1019410 -> True
1019510 -> True
22 -> False
1431 -> False
15621 -> False
14641 -> False
Wskazówka
Podczas pisania tego wyzwania odkryłem fajną sztuczkę, która znacznie ułatwia ten problem. Nie jest to niemożliwe bez tej sztuczki i nie jest też trywialne, ale pomaga. Miałem dużo zabawy z odkryciem tego, więc zostawię to w spoilerze poniżej.
Powtarzane odwracanie i dodawanie zawsze będzie miało wartość 11 w 6 iteracjach lub mniej. Jeśli nie trafi liczby pierwszej, zanim trafi wielokrotność 11, nigdy nie trafi liczby pierwszej.