Salve a tutti, vorrei un suggerimento per questo programma che non ho ben chiaro.
Esposizione:
Si richiede di costruire con una funzione perfect che determini se il parametro number sia un numero perfetto...per ora mi basta questo.
Dunque, so che un numero perfetto lo è quando la somma dei suoi fattori, incluso 1 (ma non se stesso) sia pari a quel numero. 6 = 1 + 2 + 3...
In due parole credo ci sia un equazione che risolva questo algoritmo...solo....qualè?:-)
io ho interpretato la formula euclide come segue..ma..non ci siamo..
#include <stdio.h>
#include <conio.h>
int integerPower(int);
main()
{
int numero, risposta;
printf("Inserisci il numero da controllare se perfetto: ");
scanf("%d", &numero);
risposta = integerPower(numero);
if(risposta == 1){
printf("\n\nIl numero %d e' perfetto!", numero);
}
getch();
}
int integerPower(int verificare){
int counter, ciclo1, ciclo2, euclide, i, y;
counter = 0;
while(counter = 0){
i = 1;
y = 1;
ciclo1 = 1;
while(i <= y){
ciclo1 *= 2;
i++;
}
ciclo2 = 2;
while(i <= y){
ciclo2 *= 2;
i++;
}
euclide = ciclo1 * (ciclo2 - 1);
if(euclide == verificare){
counter = 1;
}
else
{
counter = 0;
i++;
y++;
}
}
return 1;
}