Zadanie 2: Liczby
Cięcie zapisu dziesiętnego na połowę: algorytm bez tablic, liczby połowicznie względnie pierwsze i stopień Kaprekara.
Rozwiązujesz bez konta, a odpowiedzi sprawdza ten sam silnik co na platformie. Postęp i powtórki zapisują się dopiero po darmowej rejestracji.
Algorytm cięcia na połowę
Operacja cięcia jest zdefiniowana dla dodatnich liczb całkowitych większych lub równych 10 i polega na podziale zapisu dziesiętnego liczby na dwa niepuste zapisy. Dla liczby 14379 możliwe cięcia to: 1 i 4379, 14 i 379, 143 i 79, 1437 i 9. Dla liczby 2302 możliwe cięcia to: 2 i 302, 23 i 02 (czyli 23 i 2, bo wartość liczbowa zapisu „02” to 2) oraz 230 i 2.
Niech k będzie dodatnią liczbą całkowitą o parzystej liczbie cyfr. Cięcie na połowę daje liczbę a (z lewej połowy zapisu) i liczbę b (z prawej połowy), np. dla k = 123456 mamy a = 123 i b = 456, a dla k = 120056 mamy a = 120 i b = 56. Uzupełnij luki w algorytmie, który wyznacza a i b. Wolno używać wyłącznie zmiennych całkowitych oraz operacji arytmetycznych (w tym div i mod), porównań i instrukcji sterujących, bez tablic i funkcji wbudowanych.
dlugosc <- 0 x <- k dopóki x > 0 powtarzaj x <- dlugosc <- dlugosc + 1 potega <- 1 b <- 0 dla i = 1, 2, ..., powtarzaj b <- b + k <- k div 10 potega <- potega * 10 a <-