Advertisement
4eyes4u

Untitled

Nov 10th, 2016
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.83 KB | None | 0 0
  1. #include <cstdio>
  2. #include <cmath>
  3.  
  4. int perfect[4], n; //niz indeksiran od 0
  5.  
  6. bool factorize (int x)
  7. {
  8.     int ret=1, sq=sqrt(x);
  9.     for (int i=2;i<=sq;i++) if (x%i==0) ret+=i+x/i; //faktorizacija do sqrt(x)
  10.     if (sq*sq==x && x%sq==0) ret-=sq; //ako je broj potpun kvadrat dva puta cemo sabrati sqrt(x) kao delilac, pa oduzimamo jednom
  11.  
  12.     return (ret==x); //ako je broj jednak zbiru delilaca (osim njega samog) vraca true
  13. }
  14.  
  15. void findPerfectNumbers ()
  16. {
  17.     int found=0;
  18.     for (int i=2;found<4;i++)
  19.     {
  20.         if (factorize(i)) perfect[found++]=i;
  21.     }
  22. }
  23.  
  24. void getPerfectNumber()
  25. {
  26.     int n;
  27.     scanf ("%d", &n);
  28.  
  29.     if (n && n<5) printf ("%d", perfect[n-1]); //ako je n iz skupa [1, 2, 3, 4]
  30.     else printf ("Greska");
  31. }
  32.  
  33. int main()
  34. {
  35.     findPerfectNumbers();
  36.     getPerfectNumber();
  37.  
  38.     return 0;
  39. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement