Advertisement
icatalin

tema 29.10

Oct 29th, 2014
182
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.94 KB | None | 0 0
  1. /* a) Scrieţi definiţia completă a subprogramului dcp, cu doi parametri, care:
  2. - primeşte prin parametrii a şi b două valori naturale din intervalul [1;30000]
  3. - returnează o valoare naturală reprezentând cel mai mare număr care este atât divizor al lui a
  4. cât şi divizor al lui b şi care se scrie ca un produs de factori primi diferiţi, sau valoarea 1 dacă
  5. nu există un astfel de divizor.
  6. Exemplu: dacă a=100 şi b=120, subprogramul returnează valoarea 10. */
  7.  
  8. #include <iostream>
  9.  
  10. using namespace std;
  11.  
  12. int dcp(int a,int b)
  13. {
  14.     int div,q,qq,f,p,ok,i;
  15.     for (div=1;div<=30000;div++)
  16.         if (a%div==0 && b%div==0)
  17.         q=div;
  18.         qq=q;
  19.         int fv[qq];
  20.  
  21. f=2;
  22. while(qq!=1)
  23. {
  24. p=0;
  25. while(qq%i==0)
  26. {
  27. qq/=i;
  28. p++;
  29. }
  30. if(p!=0)
  31. fv[f]=p;
  32. f++;
  33. }
  34.  
  35. ok=0;
  36. for (i=2;i<=qq;i++)
  37. cout<<fv[i]<<" ";
  38. ok=1;
  39.  
  40.  
  41. if (ok=0)
  42. return q;
  43. else
  44. return 1;
  45. }
  46.  
  47. int main()
  48. {
  49. cout<<dcp(100,120);
  50.     return 0;
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement