Napisz program, który przetestuje pierwotność określonej liczby i poda wynik jako wartość logiczną (prawda jest liczbą pierwszą). Twój test podstawowy może (ale nie musi) być ważny na liczbę 1.
Oto haczyk: sam program musi sumować się do liczby pierwszej. Konwertuj każdy znak (łącznie ze spacjami) na jego wartość Unicode / ASCII ( tabela ). Następnie dodaj wszystkie te liczby razem, aby uzyskać sumę swojego programu.
Weźmy na przykład ten niezbyt świetny program, który napisałem w Pythonie 3.3:
q=None
y=int(input())
for x in range(2,int(y**0.5)+1):
if y%x==0:
q=False
if not q:
q=True
print(q)
Jeśli przekonwertujesz wszystkie znaki na odpowiadające im wartości Unicode / ASCII, otrzymasz:
113 61 78 111 110 101 10 121 61 105 110 116 40 105 110 112 117 116 40 41 41 10 102 111 114 32 120 32 105 110 32 114 97 110 103 101 40 50 44 105 110 116 40 121 42 42 48 46 53 41 43 49 41 58 10 32 32 32 32 105 102 32 121 37 120 61 61 48 58 10 32 32 32 32 32 32 32 32 113 61 70 97 108 115 101 10 105 102 32 110 111 116 32 113 58 10 32 32 32 32 113 61 84 114 117 101 10 112 114 105 110 116 40 113 41
Następnie możesz znaleźć sumę tych liczb ręcznie lub we własnym programie. Ten konkretny program wynosi 8293, co jest liczbą pierwszą.
Oczywiście jest to Code Golf, więc im mniejszy jest program, tym lepiej. Jak zauważyli inni użytkownicy, ten program nie jest bardzo golfowy.
Kilka zasad:
Prawidłowe dane wejściowe obejmują STDIN i monity (brak funkcji, to tylko sposób na dodanie darmowego dodatkowego kodu). Spacje są dozwolone, ale tylko wtedy, gdy mają kluczowe znaczenie dla funkcjonalności twojego programu. Dane wyjściowe muszą być danymi wyjściowymi, a nie tylko przechowywanymi w zmiennej lub zwracanymi (użyj print, STDOUT itp.)
Flagi mogą być używane i powinny być liczone dosłownie, a nie rozszerzane. Komentarze nie są dozwolone. Jeśli chodzi o znaki spoza ASCII, należy je przypisać do wartości w odpowiednim kodowaniu.
Podaj rozmiar swojego programu i sumę programu. Będę testować, aby upewnić się, że programy są prawidłowe.
Powodzenia!
Oto fragment kodu zliczający sumę programu i sprawdzający, czy jest on najważniejszy: