Advertisement
Drowze

APC B 02 - Funções 03

Aug 26th, 2014
256
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.08 KB | None | 0 0
  1.  /*Faça um procedimento que receba um valor inteiro qualquer por referência. Esse
  2. procedimento deve verificar se um valor é perfeito ou não. Um valor é dito perfeito
  3. quando ele é igual a soma dos seus divisores exceto ele próprio. Por exemplo: 6 é
  4. perfeito uma vez que 6 = 1 + 2 + 3 (que são seus divisores). A função deve retornar,
  5. também por referência, 1, caso o número seja perfeito e 0 em caso contrário. Exibir no
  6. programa principal uma mensagem informativa ao usuário.*/
  7.  
  8. #include <stdio.h>
  9. #include <stdlib.h>
  10.  
  11. int ChecarPerfeito(int valor);
  12.  
  13. void main(){
  14.     int valor=0;
  15.  
  16.     printf("Digite um numero e verificarei se eh perfeito: ");
  17.     scanf("%d",&valor);
  18.  
  19.     if(ChecarPerfeito(valor) == 1) printf("O numero eh perfeito\n");
  20.     else if(ChecarPerfeito(valor) == 0) printf("O numero nao eh perfeito\n");
  21.     else printf("Erro");
  22.  
  23.     system("Pause");
  24. }
  25.  
  26. int ChecarPerfeito(int valor){
  27.     int soma_divisores = 0;
  28.  
  29.     for(int i = valor/2; i>0; i--){
  30.         if(valor%i == 0) soma_divisores = soma_divisores + i;
  31.     }
  32.  
  33.     if(soma_divisores == valor) return 1;
  34.     else return 0;
  35. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement