Jump to content
henriqueseiji

exercicio de C

Recommended Posts

henriqueseiji

Olá pessoal estou com um exercício que não ta saindo se alguém puder me ajudar agradeço ae!! É este aqui:

Um número inteiro é perfeito se for igual a soma de seus fatores (excluindo ele próprio).

Faça um programa que informado um valor inteiro, verifique se ele é perfeito ou não, e em

caso de afirmativo imprima seus fatores.

Por exemplo: 28 é perfeito (fatores: 1, 2, 4, 7, 14) 1+2+4+7+14=28

Share this post


Link to post
Share on other sites
henriqueseiji

tipo, meu programa mostra os fatores mas não os soma, para verificar se é número perfeito ou não.

#include <stdio.h>
#include <conio.h>
#include <math.h>


     main () {
     int soma=0;
     int num,i;
     float resto;
         
     printf("digite um numero inteiro:\n");
     scanf("%d",&num);     
     
       
       for(i=1; i<=num-1; i++)
       {
         
         resto=(num%i); 
    
                                                                   
         if(resto==0)
         {
                      soma=soma+i;
                      printf("o numero %d e um fator\n",i);
                                         
                      }
                      }           
          if(soma==num)
          {
                      printf("O numero digitado e perfeito");
                      }
                      else
                      {
                          printf("O numero digitado nao e perfeito");
                      }            
                      
       
          getch();
          }    

Share this post


Link to post
Share on other sites
KTachyon

Funciona... E não deves utilizar o getch().


“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Share this post


Link to post
Share on other sites
henriqueseiji

então eu tirei o getch() e mesmo assim ele só fala os fatores e no laço para

ver se é numero perfeito ou não ele não pega..

Share this post


Link to post
Share on other sites
KTachyon

Pah, eu a olhar para o código não vi nada de mal. Copiei, colei, compilei e funciona:

digite um numero inteiro:
28
o numero 1 e um fator
o numero 2 e um fator
o numero 4 e um fator
o numero 7 e um fator
o numero 14 e um fator
O numero digitado e perfeito

digite um numero inteiro:
12
o numero 1 e um fator
o numero 2 e um fator
o numero 3 e um fator
o numero 4 e um fator
o numero 6 e um fator
O numero digitado nao e perfeito

Para além de remover o include do conio.h e o getch() (que não existem no meu sistema), não fiz nenhuma alteração. Ou seja, o programa está a funcionar...


“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Share this post


Link to post
Share on other sites
Localhost

Em linguagem corrente é a mesma coisa que dizer: "enquanto i for menor ou igual a num - 1", ou seja, quando i for maior que num - 1 (igual a num) o ciclo pára.


here since 2009

Share this post


Link to post
Share on other sites
brunoais

Dica: O for, pelo menos da maneira mais usada, como o q tens aí, funciona muito como a lógica do somatório em matemática.

4d309a0221a89db014a37b91b7c9f34f.png

Neste caso, num-1 seria 10 e ele iria executar um ciclo incrementando o i (i++).

e isto ?

soma=soma+i;

O valor que fica gravado em soma passa a ser o valor que estava gravado em soma + 1.


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.