def hesapla(baslangic, basamak_sayisi): toplam_seti = set() sayi = int(baslangic) limit = 10 ** basamak_sayisi adim = 0 while True: sayi = sayi % limit sayi_str = str(sayi).zfill(basamak_sayisi) print(f"Adım {adim}: {sayi_str}") toplam = sum(int(digit) for digit in sayi_str) yeni_hane = (int(sayi_str[1:]) * 10 + (toplam % 10)) % limit yeni_hane_str = str(yeni_hane).zfill(basamak_sayisi) if yeni_hane_str in toplam_seti: print(f"Döngü oluştu! Adım: {adim}, Döngüdeki {basamak_sayisi} haneli sayı: {yeni_hane_str}") break toplam_seti.add(yeni_hane_str) sayi = yeni_hane adim += 1 def get_valid_input(prompt): """Geçerli bir sayı almak için yardımcı fonksiyon""" while True: value = input(prompt) if value.isdigit() and len(value) > 0: return value print("Geçersiz giriş! Lütfen sadece rakamlardan oluşan bir sayı giriniz.") def main(): """Ana fonksiyon: Kullanıcıdan giriş alır ve işlemi başlatır.""" x = get_valid_input("Lütfen bir sayı giriniz: ") basamak_sayisi = int(get_valid_input("Kullanılacak basamak sayısını giriniz: ")) if basamak_sayisi <= 0: print("Basamak sayısı pozitif bir tamsayı olmalıdır.") return hesapla(x, basamak_sayisi) if __name__ == "__main__": main()