Czesc mam do napisania program ktory wyznacza kolejne wyrazy ciagu, okreslonego wzorem NWD(an,an-1)>1, wyglada on natępująco 1,2,4,6,3,9,12,8,10,5,15,18,14,7....Program na wyjsciu ma podawac index liczby w ciagu czyli dla zapytania:
IN OUT
5 10
299993 584898
300000 292101
Napisałem program, który w realizuje to zadanie:
while(t_1[beg])beg++;
n=beg; //liczba kolejna szukana to liczba ktora juz nie wystapila w ciagu
while(NWD(i,n)==1){ //szukanie pary dla ktorej NWD>1
if(!t_1[n])n++; //
while(t_1[n])n++;//szukanie kolejnej liczby, ktora nie zostala wypisana
}
t_1[n]=index++;// liczba znaleziona zapisuje index do tb - tym samym zaznaczam liczby wypisane
i=n; // liczba znaleziona jest poprzednia w kolejnej petli
Chciałem się zapytać czy istnieje jakiś algorytm, który w efektywniejszy sposób realizuje problem? Moja wiedza z algoytmiki nie jest zbyt duza stąd takie rozwiązanie...