Guest User

gard.cpp

a guest
Sep 5th, 2012
130
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Problema se poate rezolva mai usor observand ca scandurile vopsite in violet
  2. // trebuie sa se divida si la p si la q, deci numarul lor este egal cu raportul dintre
  3. // numarul total de scanduri si cmmmc (p, q). Cunoscand numarul de scanduri violet
  4. // putem determina numarul de scanduri la care se folosesc culorile rosu si albastru
  5. // prin rezolvarea fractiei n/p, respectiv n/q. Din aceste numere, eliminand numarul
  6. // de scanduri violet, aflam numarul de scanduri vopsite cu rosu si albastru.
  7.  
  8. #include <iostream>
  9. using namespace std;
  10.  
  11. int euclid(int a, int b)
  12. {
  13.     if((!a) || (!b)) return a+b;
  14.     if(a>b) return euclid(a%b,b);
  15.     return euclid(a,b%a);
  16. }
  17.  
  18. int main()
  19. {
  20.     int n, p, q, v, r, a, nev;
  21.    
  22.     cout << "n= "; cin >> n;
  23.     cout << "p= "; cin >> p;
  24.     cout << "q= "; cin >> q;
  25.    
  26.     v   = n/(p*q/euclid(p, q));
  27.     r   = n/p-v;
  28.     a   = n/q-v;
  29.     nev = n-v-r-a;
  30.    
  31.     cout << nev << " scanduri nevopsite\n" << r << " scanduri vopsite in rosu\n"
  32.          << a << " scanduri vopsite in albastru\n" << v << " scanduri vopsite in violet\n";
  33.    
  34.     return 0;
  35. }
RAW Paste Data