#include #include // ---- funzione primo int primo(int n) { int num; for (num = 2; num < n; num++) { if ( (n % num) == 0 ) return 0; //Non è primo } return 1; //è primo } // ---- main int main(int argc, char *argv[]) { int y,x,fatt; printf("Inserisci un numero: "); scanf("%d", &x); if ( primo(x) == 1 ) { printf("- E' un numero primo\n"); } else { printf("- Non e' un numero primo\n"); printf("Fattori primi trovati nel numero:\n"); y=x; for (fatt = 2; fatt <= x; fatt++) { if ( primo(fatt) == 1 ) { if ( (x % fatt) == 0 ) { printf("Un fattore primo e': %d\n", fatt); x = x / fatt; } } //fine if } // fine for x=y; printf("\n\n"); printf("Decomposizione in fattori primi:\n"); while(x>1) { for (fatt = 2; fatt <= x; fatt++) { if ( primo(fatt) == 1 ) { if ( (x % fatt) == 0 ) { printf("%d ", fatt); x = x / fatt; break; } } //fine if } // for } // while printf("\n\n"); } // fine if system("PAUSE"); return 0; }