SHARE
TWEET

Untitled

a guest Oct 23rd, 2019 99 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. #include <string>
  3. #include <vector>
  4. #include <algorithm>
  5. void NWW(unsigned long liczbaa);
  6. unsigned long NWD(int liczba1, int liczba2);
  7. int main()
  8. {
  9.     unsigned short z = 0;
  10.     std::cin >> z;
  11.     unsigned long liczba;
  12.     for(int i = 0; i < z; i++){
  13.         std::cin >> liczba;
  14.         NWW(liczba);
  15.     }
  16.     return 0;
  17. }
  18.  
  19. void NWW(unsigned long liczbaa){
  20.     unsigned long number = liczbaa;
  21.     std::vector < unsigned long> dzielniki;
  22.     dzielniki.push_back(number);
  23.     if(number%2 == 0){
  24.         number = number/2;
  25.         dzielniki.push_back(number);
  26.     } else{
  27.         number = number / 2;
  28.     }
  29.     while(number != 1){
  30.         number--;
  31.         if(liczbaa % number == 0){
  32.             dzielniki.push_back(number);
  33.     }
  34. }
  35.     int counter = 0;
  36.     int seqStart = 0;
  37.     int seqEnd = 0;
  38.     std::reverse(dzielniki.begin(), dzielniki.end());
  39.     for(int i = 0; i < (dzielniki.size()-1); i++){
  40.         if(dzielniki[i] == (dzielniki[i+1]-1)){
  41.            counter++;
  42.            } else if(counter > (seqEnd-seqStart)){
  43.            seqStart = i-counter;
  44.            seqEnd = i;
  45.            counter = 0;
  46.            } else if(counter == (seqEnd-seqStart)){
  47.                if(dzielniki[i - counter] > dzielniki[seqStart]){
  48.                 continue;
  49.                }
  50.            }
  51.     }
  52.     if(seqStart == seqEnd){
  53.         std::cout << "NIE" << std::endl;
  54.     } else{
  55.         std::cout << dzielniki[seqStart] << " " << dzielniki[seqEnd] << std::endl;
  56.         }
  57. }
  58.  
  59. unsigned long NWD(int liczba1, int liczba2){
  60.     if(liczba1%liczba2 == 0){
  61.         return liczba2;
  62.     } else {
  63.         int b = liczba1%liczba2;
  64.         return NWD(liczba2,b);
  65.     }
  66. }
  67.  
  68. unsigned long NWWmax()
  69.  
  70. unsigned long NWW(unsigned long liczba1, unsigned long liczba2){
  71.     return (liczba1 * liczba2) / NWD(liczba1, liczba2);
  72. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top