# -*- coding: utf-8 -*-
"""
Created on Thu Apr  9 13:08:26 2026

@author: student
"""

def convert_to_f(temp):
    res = temp * 9/5 + 32
    return res

def print_for():
    for temp_c in range(0, 41, 2):
        temp_f = convert_to_f(temp_c)
        print('T[C] = ', temp_c, '  | T[F]', temp_f)
        
def print_while():
    temp_c = 0
    while temp_c <= 40:
        print(temp_c)
        temp_c += 2
        
def print_while2():
    temp_c = -2
    while temp_c < 40:
        temp_c += 2
        print(temp_c)
        
#print_for()
#print_while2()
import math

def suma_ilosc(n, pow = 1):
    step = n
    ilosc = 0
    suma = 0
    
    while step > 0:
        partial_sum = (step % 10) ** pow
        suma = suma + partial_sum
        ilosc = ilosc + 1
        step = step // 10
    
    return ilosc, suma
    
def armstrong_alg(n):
    ilosc, suma = suma_ilosc(n)
    
    return suma ** ilosc == n

def armstrong_alg2(n):
    ilosc, _ = suma_ilosc(n)
    __, suma = suma_ilosc(n, ilosc)
    return suma == n

def armstrong_alg3(n):
    ilosc = int(math.log10(n)) + 1
    _, suma = suma_ilosc(n, ilosc)
    return suma == n

def niven_alg(n):
    _, suma = suma_ilosc(n)
    return n%suma == 0

n = 153
print(niven_alg(n))
