Ti ovde imaš fiksni broj koraka, 10. Ne znam zašto. Pored toga, može da se desi da na isti član niza više puta dodaješ broj x. Što je manji redni broj člana, veća je šansa da se to desi.
Evo kako bih ja to uradio, pri čemu ne znam da li je to algoritam koji daje minimalni broj poteza.
1. Ukloniš sve članove niza koji su u startu deljivi sa K.
2. Sortiraš članove niza od najmanjeg do najvećeg. (za ovo nisam siguran da je neophodno, ali možeš da probaš sa i bez)
3. Ponavljaš sledeći korak dok niz ne bude bio prazan:
4. Radiš ono što imaš u programu: tražiš prvi član niza koji je deljiv sa K kada mu se doda x.
4.1. Ako postoji takav član, ukloniš ga iz niza i povećaš x.
4.2. Ako ne postoji takav član, samo povećaš x.
Broj prolaza kroz tačke 4.1 ili 4.2 daje broj koji se traži.
Mislim da nema potrebe da imaš posebnu funkciju za dodavanje broja nekom elementu niza. Štaviše, nema potrebe ni da računaš to. U zadatku se traži broj koraka za transformaciju niza, a ne čemu će da budu jednaki elementi niza na kraju.