Swordfish schrieb:
while( printf( "Bitte geben Sie eine ganze positive Zahl ein: " ), !scanf("%lu", &input ) ) {
Das funktioniert natürlich so nicht, !scanf liefert auch bei EOF false bzw. true, was hier falsch ist. Auch wird der Eingabepuffer nur im Fehlerfall geleert, was nicht im Sinne des Anwenders sein dürfte.