def cyfrowy_pierwiastek_multiplikatywny(n): while n >= 10: digits = [int(digit) for digit in str(n)] if 0 in digits: return 0 n = 1 for digit in digits: n *= digit return n def liczba_pierwiastkow_multiplikatywnych(n): wynik = [0] * 10 for i in range(1, n + 1): pierwiastek = cyfrowy_pierwiastek_multiplikatywny(i) if 1 <= pierwiastek <= 9: wynik[pierwiastek] += 1 return wynik def oblicz_pierwiastki_dla_testow(t, liczby): for n in liczby: wynik = liczba_pierwiastkow_multiplikatywnych(n) print(" ".join(map(str, wynik[1:]))) t = int(input()) liczby = [int(input()) for _ in range(t)] oblicz_pierwiastki_dla_testow(t, liczby)
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 | def cyfrowy_pierwiastek_multiplikatywny(n): while n >= 10: digits = [int(digit) for digit in str(n)] if 0 in digits: return 0 n = 1 for digit in digits: n *= digit return n def liczba_pierwiastkow_multiplikatywnych(n): wynik = [0] * 10 for i in range(1, n + 1): pierwiastek = cyfrowy_pierwiastek_multiplikatywny(i) if 1 <= pierwiastek <= 9: wynik[pierwiastek] += 1 return wynik def oblicz_pierwiastki_dla_testow(t, liczby): for n in liczby: wynik = liczba_pierwiastkow_multiplikatywnych(n) print(" ".join(map(str, wynik[1:]))) t = int(input()) liczby = [int(input()) for _ in range(t)] oblicz_pierwiastki_dla_testow(t, liczby) |