Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <vector>
- #include <algorithm>
- unsigned long NWW(unsigned long, unsigned long);
- unsigned long NWD(int, int);
- unsigned long NWWmax(const std::vector<unsigned long>, int, int);
- int main()
- {
- unsigned short z = 0;
- std::cin >> z;
- unsigned long liczba;
- for(int i = 0; i < z; i++){
- std::cin >> liczba;
- WYNIK(liczba);
- }
- return 0;
- }
- 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(const std::vector<unsigned long> &dzielniki,int start, int end){
- unsigned long liczba = NWW(dzielniki[start],dzielniki[start+1]);
- for(int i = start+2; i < end; i++){
- unsigned long ed = dzielniki[i];
- liczba = NWW(ed, liczba);
- }
- return liczba;
- }
- unsigned long NWW(unsigned long liczba1, unsigned long liczba2){
- return (liczba1 * liczba2) / NWD(liczba1, liczba2);
- }
- void WYNIK(unsigned long liczba){
- std::vector<unsigned long> dzielnik;
- k = liczba;
- if(liczba % 2 == 0){
- k = liczba / 2;
- dzielnik.push_back(k);
- } else {
- k = liczba / 2 + 1;
- }
- while(k != 0){
- k--;
- if(liczba % k == 0){
- dzielnik.push_back(k);
- }
- reverse(dzielnik.begin(), dzielnik.end());
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement