Kaprekar sayıları , 1949 yılında Hintli matematikçi Kaprekar tarafından tariflenen sayılardır. n basamaklı bir t Kaprekar sayısının karesi alınıp sağdaki n basamağı solda kalan n-1 basamağa eklendiğinde sonuç yine t sayısını verir. Örnek: 55 , iki basamaklı bir sayıdır. 552 = 3025 , sağdan iki basamak 25 , soldan iki basamak 30. Bu iki sayının toplamı 30+25=55 yani sayının kendisidir. 1, 9, 45, 55, 99, 297, 703, 999, 2223, 2728, 4879 sayıları da diğer bazı Kaprekar sayılarıdır.
Kod:
Public Class Form1
Dim sayi, uz, sayi_kare, sagtaraf, soltaraf, basla, bitir,
sagtaraf_uzunluk, sayi_kare_uzunluk As Long
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles BtnHesapla.Click
LstSayi.Items.Clear()
basla = TxtBaslangic.Text ' Bu sayı aralığın başlangıç sayısı ve
en az 9 girilmeli
bitir = TxtBitis.Text
For sayi = basla To bitir
uz = Strings.Len(sayi.ToString)
sayi_kare = sayi * sayi
sagtaraf = Strings.Right(sayi_kare.ToString, uz)
sayi_kare_uzunluk = Strings.Len(sayi_kare.ToString)
sagtaraf_uzunluk = Strings.Len(sagtaraf.ToString)
soltaraf = Strings.Left(sayi_kare.ToString, sayi_kare_uzunluk
- sagtaraf_uzunluk)
If sagtaraf + soltaraf = sayi And sayi <> 10 Then
LstSayi.Items.Add(sayi)
End If
Next
End Sub
End Class