Advertisement
amermo

Goldbach

Mar 22nd, 2015
221
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.00 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <stdexcept>
  4.  
  5. void Goldbach(int n, int &p, int &q)
  6. {
  7.     std::vector<int> v;
  8.     for(int i(2); i <= n; i++)
  9.     {
  10.         int counter(0);
  11.         for(int j(1); j <=i; j++)
  12.         {
  13.             if(i % j == 0)
  14.                 counter++;
  15.         }
  16.         if(counter == 2)
  17.             v.push_back(i);
  18.     }
  19.     bool ima(false);
  20.     for(int i(0); i < v.size(); i++)
  21.     {
  22.         for(int j(0); j < v.size(); j++)
  23.         {
  24.             if(v[i]+v[j] == n)
  25.             {
  26.                 p = v[i];
  27.                 q = v[j];
  28.                 ima = true;
  29.             }
  30.             if(p > q)
  31.             {
  32.                 int z(p);
  33.                 p = q;
  34.                 q = z;
  35.             }
  36.         }
  37.     }
  38.     if(!ima) throw std::domain_error("Ne postoje takvi brojevi!");
  39.     if(n <= 2 || n % 2 != 0) throw std::domain_error("Izuzetak!");
  40. }
  41.  
  42. int main()
  43. {
  44.     int a, b;
  45.     Goldbach(3, a, b);
  46.     std::cout << a << " " << b;
  47.     return 0;
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement