To jest moje pierwsze wyzwanie!
tło
Liczba idealna to dodatnia liczba całkowita, która jest równa sumie wszystkich jej dzielników, z wyjątkiem siebie.
Od tego czasu 6
jest to idealna liczba 1 + 2 + 3 = 6
.
Z drugiej strony 12
nie jest, ponieważ 1 + 2 + 3 + 4 + 6 = 16 != 12
.
Zadanie
Twoje zadanie jest proste: napisz program, który n
wydrukuje jeden z następujących komunikatów:
Jestem idealną liczbą, ponieważ
d1 + d2 + ... + dm = s == n
nie jestem idealną liczbą, ponieważd1 + d2 + ... + dm = s [<>] n
Gdzie
d1, ... dm
są wszystkie dzielniki z n
wyjątkiem n
.
s
jest sumą wszystkich dzielników d1, ..., dm
(znowu bez n
).
[<>]
jest albo <
(jeśli s < n
) albo >
(jeśli s > n
).
Przykłady
Za n
bycie 6
: „Jestem liczbą idealną, ponieważ 1 + 2 + 3 = 6 == 6”
Za n
bycie 12
: „Nie jestem liczbą idealną, ponieważ 1 + 2 + 3 + 4 + 6 = 16> 12”
Za n
bycie 13
: „Nie jestem liczbą idealną, ponieważ 1 = 1 <13”
Zasady
n
nie jest większy niż standard twojego językaint
.- Możesz czytać
n
ze standardowego wejścia, z argumentów wiersza poleceń lub z pliku. - Komunikat wyjściowy musi być wydrukowany na standardowym wyjściu i na wydruku nie mogą pojawiać się żadne dodatkowe znaki (może mieć końcowe białe znaki lub nowy wiersz)
- Nie możesz używać żadnych wbudowanych funkcji bibliotecznych, które rozwiązałyby zadanie (lub jego główną część). Nie
GetDivisors()
lub coś takiego. - Obowiązują wszystkie inne standardowe luki .
Zwycięzca
To jest golf golfowy, więc wygrywa najkrótszy kod w bajtach !
=
i ==
w tym samym równaniu? To nie ma sensu. Powinien to być d1 + d2 + ... + dm = s = n
IMO.