Programma Sui numeri perfetti

di il
3 risposte

Programma Sui numeri perfetti

Non riesco a fare la fattorizzazione del numero che metto in input me lo potreste controllare?
int n,r,i,d4,d5,d=0,r2;

int main(int argc, char *argv[]) 
{
do
	{
		printf("Inserire il numero da controllare se sia perfetto >> ");
		scanf("%d", &n);
	}while(n<0);
	r=n%2;
	if(r==0)
	{		d5=n/2;
			printf("I suoi divisori sono:\n");	
			for(i=0;i<d5;i++)
			{
				d=d+i;
				printf("%d\n",d);
			}
			printf("\nIl numero %d e' perfetto",n);
			
	}else{
			d4=n/3;
		 	r2=n%3;
		 	if(r2==0)
			 {		printf("I suoi divisori sono:\n");
			 		for(i=0;i<d4;i++)
					{
						d=d+i;
						printf("%d\n",d);
					}
					printf("\nIl numero %d e' perfetto",n);
			 	
			 }else{
				  	printf("\nIl numero %d non e' perfetto",n);
				  }
		 }

	return 0;
}

3 Risposte

  • Re: Programma Sui numeri perfetti

    Posta il codice dentro i tag CODE.

    Comunque il tuo codice è troppo lungo. Il numero è perfetto se è somma dei suoi divisori, la puoi risolvere in modo banale con un ciclo for per i che va da 1 a n-1, aggiornando la somma se n%i è zero
  • Re: Programma Sui numeri perfetti

    Ok il programma è fatto apposta per vedere se un numero è perfetto o no, il problema non è vedere se il numero che inserisco sia perfetto ma che mi metta in output i suoi divisori ad esempio,ho provato a mettere il numero 6 in teoria sarebbe 1,2,3, ma mi mette in output 1,3.Comunque grazie per la risposta
  • Re: Programma Sui numeri perfetti

    Hai compreso la risposta che hai avuto? Mi sembra di no...
Devi accedere o registrarti per scrivere nel forum
3 risposte