Niestety, nie byliśmy w stanie w pełni poprawnie wyświetlić tego pliku, ponieważ nie jest zakodowany w UTF-8.
Możesz pobrać ten plik i spróbować otworzyć go samodzielnie.
/*---------------------- Koniecko �ukasz - lukon lukon10@wp.pl ----------------------*/ /*---------------------------------------- Potyczki Algorytmiczne 2014, runda pr�bna Zadanie: ILO Iloczyn -----------------------------------------*/ #include <iostream> using namespace std; /* Obliczanie n-tego wyrazu ci�gu F. */ int fibonacci(int n){ if(n==0) return 0; if(n==1) return 1; int f=0; int f1=0; int f2=1; for(int i=2; i <= n; i++){ f = f1 + f2; f1 = f2; f2 = f; } return f; } /* Szukanie dw�ch liczb z ci�gu F., kt�re s� iloczynem licby n */ int iloczyn(int n){ if(n==0 || n==1) return 0; int f = 0; //kolejne liczby z ci�gu F. /* Jezeli liczba n >= 2 i jest liczb� z ci�gu F. to ma dwa dzielniki -> TAK */ int fk = 0; //ile liczb w ciagu for(int i=3; f<=n; i++){ f = fibonacci(i); if(f == n) return 1; fk=i; } f = 0; /* Sprawdzanie, kt�re liczby z ci�gu F. s� dzielnikami liczby n */ int tab_dz[fk]; //tablica z dzielnikami liczby n int ld=0; // liczba dzielnik�w for(int i=3; f <= n; i++){ f = fibonacci(i); if(n%f == 0) { tab_dz[ld] = f; ld++; } } /* Sprawdzanie czy jest iloczyn dw�ch liczb, kt�ry daje liczb� n */ for(int i=0; i < ld; i++) for(int j=i; j < ld; j++){ if(tab_dz[i]*tab_dz[j] == n) return 1; } return 0; } int main(){ int t; //liczba przypadk�w testowych int n; //liczba do testu cin >> t; /* Sprawdzanie... */ for(int i=0; i < t; i++){ cin >> n; if(iloczyn(n)) cout << "TAK" << endl; else cout << "NIE" << endl; } }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 | /*---------------------- Koniecko �ukasz - lukon lukon10@wp.pl ----------------------*/ /*---------------------------------------- Potyczki Algorytmiczne 2014, runda pr�bna Zadanie: ILO Iloczyn -----------------------------------------*/ #include <iostream> using namespace std; /* Obliczanie n-tego wyrazu ci�gu F. */ int fibonacci(int n){ if(n==0) return 0; if(n==1) return 1; int f=0; int f1=0; int f2=1; for(int i=2; i <= n; i++){ f = f1 + f2; f1 = f2; f2 = f; } return f; } /* Szukanie dw�ch liczb z ci�gu F., kt�re s� iloczynem licby n */ int iloczyn(int n){ if(n==0 || n==1) return 0; int f = 0; //kolejne liczby z ci�gu F. /* Jezeli liczba n >= 2 i jest liczb� z ci�gu F. to ma dwa dzielniki -> TAK */ int fk = 0; //ile liczb w ciagu for(int i=3; f<=n; i++){ f = fibonacci(i); if(f == n) return 1; fk=i; } f = 0; /* Sprawdzanie, kt�re liczby z ci�gu F. s� dzielnikami liczby n */ int tab_dz[fk]; //tablica z dzielnikami liczby n int ld=0; // liczba dzielnik�w for(int i=3; f <= n; i++){ f = fibonacci(i); if(n%f == 0) { tab_dz[ld] = f; ld++; } } /* Sprawdzanie czy jest iloczyn dw�ch liczb, kt�ry daje liczb� n */ for(int i=0; i < ld; i++) for(int j=i; j < ld; j++){ if(tab_dz[i]*tab_dz[j] == n) return 1; } return 0; } int main(){ int t; //liczba przypadk�w testowych int n; //liczba do testu cin >> t; /* Sprawdzanie... */ for(int i=0; i < t; i++){ cin >> n; if(iloczyn(n)) cout << "TAK" << endl; else cout << "NIE" << endl; } } |