Programma che riconosce i numeri perfetti.

di
Anonimizzato13124
il
10 risposte

Programma che riconosce i numeri perfetti.

Sono alle prese con un programma che riesca a riconoscere se il numero inserito da tastiera sia perfetto o meno .
Sono arrivato a compilare il seguente solo che i risultati prodotti sono sbagliati , visto che mi dice che qualunque numero è perfetto.
Chiedo aiuto a chiunque abbia voglia .



#include <stdio.h> 

int main(){ 
int n,i,tot=0; 

printf("Inserisci un numero: "); 
scanf("%d", &n); 

for(i = 1; i < n; i++){ 
if (n%i==0) 
tot+=i; 
} 

if (tot>n) 
printf("Non perfetto\n"); 
else 
printf("Perfetto\n"); 


getchar();
getchar();
}




10 Risposte

  • Re: Programma che riconosce i numeri perfetti.

    Qual è la regola che hai usato nel programma. Spiegala ...
  • Re: Programma che riconosce i numeri perfetti.

    Magari puoi spiegare brevemente anche cos'è un numero perfetto...
    Ad ogni modo il mio suggerimento è quello di piazzare delle printf() nei punti strategici per controllare il valore di alcune variabili.
  • Re: Programma che riconosce i numeri perfetti.

    
    if (tot==n) 
    printf("Perfetto\n"); 
    else 
    printf("Non perfetto\n"); 
    
    dato che un numero perfetto e' uguale alla somma dei divisori
  • Re: Programma che riconosce i numeri perfetti.

    Hai ragione , avevo visto male.
    ma questo non dovrebbe andare?
    
    #include <stdio.h> 
    
    int main(){ 
    int n,i,tot; 
    
    printf("Inserisci un numero: "); 
    scanf("%d", &n); 
    
    for(i =2 ; i < n; i++){ 
    if (n%i==0) 
    tot=tot*i; 
    }
    printf("\n\n"); 
    printf("%d",tot);
    if (tot=n) 
    printf(" perfetto\n"); 
    else 
    printf(" non Perfetto\n"); 
    
    
    getchar();
    getchar();
    }
    
    
    
  • Re: Programma che riconosce i numeri perfetti.

    Risolto.
  • Re: Programma che riconosce i numeri perfetti.

    No, peche'

    x=y // x assume il valore di y (come in matematica)

    x==y // ritorna 1 se x e' uguale a y



    PROVA QUESTO PROGRAMMA
    #include <stdio.h>
    
    int main(){
    int x=5;
    int y=5;
    
    printf("%d", x==y);
    printf("\n%d", x=y);
    
    x=6;
    y=8;
    
    printf("\n\n%d", x==y);
    printf("\n%d", x=y);
    
    }
    
  • Re: Programma che riconosce i numeri perfetti.

    Non ti sei chiesto perchè hai dovuto mettere due getchar alla fine del codice???
  • Re: Programma che riconosce i numeri perfetti.

    No,perchè?
  • Re: Programma che riconosce i numeri perfetti.

    Inizia col buttare nel cesso dev-c+++++++++schifezza....
    Prova a dar retta per una volta,poi se tra una settimana non vedi differenze chiamami s.....o.
  • Re: Programma che riconosce i numeri perfetti.

    Dimenticavo,dopo aver installato c::b e avrai tolto una getchar ti chiederò perchè ti tocca mettere una getchar in fondo al codice anche in code::blocks!
    Sara mica la scanf?e i suoi /n???
Devi accedere o registrarti per scrivere nel forum
10 risposte