Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <vector>
- #include <algorithm>
- void NWW(unsigned long liczbaa);
- unsigned long NWD(int liczba1, int liczba2);
- int main()
- {
- unsigned short z = 0;
- std::cin >> z;
- unsigned long liczba;
- for(int i = 0; i < z; i++){
- std::cin >> liczba;
- NWW(liczba);
- }
- return 0;
- }
- void NWW(unsigned long liczbaa){
- unsigned long number = liczbaa;
- std::vector < unsigned long> dzielniki;
- dzielniki.push_back(number);
- if(number%2 == 0){
- number = number/2;
- dzielniki.push_back(number);
- } else{
- number = number / 2;
- }
- while(number != 1){
- number--;
- if(liczbaa % number == 0){
- dzielniki.push_back(number);
- }
- }
- int counter = 0;
- int seqStart = 0;
- int seqEnd = 0;
- std::reverse(dzielniki.begin(), dzielniki.end());
- for(int i = 0; i < (dzielniki.size()-1); i++){
- if(dzielniki[i] == (dzielniki[i+1]-1)){
- counter++;
- } else if(counter > (seqEnd-seqStart)){
- seqStart = i-counter;
- seqEnd = i;
- counter = 0;
- } else if(counter == (seqEnd-seqStart)){
- if(dzielniki[i - counter] > dzielniki[seqStart]){
- continue;
- }
- }
- }
- if(seqStart == seqEnd){
- std::cout << "NIE" << std::endl;
- } else{
- std::cout << dzielniki[seqStart] << " " << dzielniki[seqEnd] << std::endl;
- }
- }
- unsigned long NWD(int liczba1, int liczba2){
- if(liczba1%liczba2 == 0){
- return liczba2;
- } else {
- int b = liczba1%liczba2;
- return NWD(liczba2,b);
- }
- }
- unsigned long NWWmax()
- unsigned long NWW(unsigned long liczba1, unsigned long liczba2){
- return (liczba1 * liczba2) / NWD(liczba1, liczba2);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement