@sputafuoco, NON FARE ""pasticci"" (volevo usare un'altra parola ma suppongo che sia abbastanza sveglio da capire quale sia )
E' ALTAMENTE IMPROBABILE che sia il compilatore (mai dire mai, ovviamente).
Invece e' ALTAMENTE PROBABILE che stai facendo pasticci TU!!!
Quindi, come si risolve?
NON PENSARE che un esperto non si trovi nella tua stessa situazione. Certo, non per esercizietti cosi' semplici, ma essendo esperto realizza applicazioni piu' complesse, e anche queste, a volte (il 90%) non funzionano come dovrebbero
Quindi, SI RICOMINCIA DALLE BASE!!
1) elimina visual studio code e usa gedit. Per 10 righe di codice non ti serve la sitassi colorata, il foldig e le altre n-mila meraviglie che VSC mette a disposizione. Utili per roba grossa, NON per un sorgente unico
2) compila A MANO, cosi' sei sicuro che stai compilando esattamente il file che stai modificando.
3) ELIMINA l'input da tastiera! Mettici UN NUMERO. L'input da tastiera TI DISTRAE e NON SERVE A NIENTE. Per cambiare inuput, cambbi il numero DIRETTAMENTE NEL CODICE. L'input da tastiera lo rimetterai solo alla fine, quando tutto il resto funzionera'.
A questo punto
1) provi con dei numeri che sai per CERTO essere NON PRIMI, tutti i multipli di 2, di 10 o di 5 (RICORDA, 2 E' PRIMO!!!!, 1 e 0 NON VANNO CONSIDERATI )
2) provi con dei numeri che sai per CERTO essere PRIMI: li trovi facilmente su internet: elenchi STERMINATI di numeri primi. Ma puoi anche iniziare con 3,5,7,11,13,17,19,23,...
In questo modo hai il PIENO CONTROLLO di quello che fa il programma e SE NON FUNZIONA inizia ad inserire dei "printf" per stampare i risultati intermedi.
L'uso delle print/stampa su schermo e' il PRIMO metodi di debugging/ricerca degli errori di un programma, nato quando tu e molti di noi non erano ancora nati, ma SEMPRE valido!