Advertisement
Guest User

Untitled

a guest
Jan 24th, 2018
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.05 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int Euklid(int a, int b)
  6. {
  7. if(b==0) return a;
  8. else return Euklid(b, a%b);
  9. }
  10.  
  11. int NWD(int *tab, int n) //NWD z wielu par liczb
  12. {
  13. int a=tab[0];
  14. int b=tab[1];
  15. int pom=Euklid(a,b);
  16. for(int i=2; i<n-1; i++)
  17. {
  18. pom=Euklid(pom, tab[i]);
  19. if(pom==1) break;
  20. }
  21. return pom;
  22. }
  23. //Chinskie twierdzenie o resztach
  24. int CHtw(int *tab1, int* tab2, int n)
  25. {
  26. if(NWD(tab2, n)>1) return -1;
  27. else{
  28.  
  29. int ni=tab2[0];
  30. int yi=tab1[0];
  31.  
  32. for(int j=0; j<n-1; j++)
  33. {
  34. bool nieznalazl=true;
  35. int i=0;
  36. while(nieznalazl)
  37. {
  38. if(yi%tab2[j+1]==tab1[j+1])
  39. {
  40. nieznalazl=false;
  41. ni=ni*tab2[j+1];
  42. }else{
  43. i++;
  44. yi=yi+ni;
  45. }
  46. }
  47. }
  48. return yi;
  49. }
  50. }
  51.  
  52. int main()
  53. {
  54. int n=3;
  55. int tab[3]={3, 4, 1};
  56. int tab2[3]={4, 5, 7};
  57. cout<< CHtw(tab, tab2, n)<<endl;
  58.  
  59. return 0;
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement