Suggerimento programma per verifica numeri perfetti

di il
1 risposte

Suggerimento programma per verifica numeri perfetti

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;
          }

1 Risposte

Devi accedere o registrarti per scrivere nel forum
1 risposte