Odpowiedź
W załączniku znajdziesz program, który napisałam.
Plik wyniki.txt zawiera po kolei liczby
2
145
1
40585
Wyjaśnienie
Tak się składa, że 1, 2, 145 oraz 40585 są jedynymi liczbami mniejszymi do stu tysięcy spełniającymi warunek zadania.
Napisałam, że funkcja silnia() daje „Poprawne wyniki tylko dla n <= 12.” ponieważ wartości większe niż 12! nie mieszą się w typie całkowitym int, a nawet w typie całkowitym unsigned int.