Öne çıkan

D’hont Sistemi Hesaplama – Python

Dhont sistemi, Belçikalı hukukçu ve matematikçi Victor D’Hondt tarafından 1878’de tasarlanmış nispi temsil sistemidir¹². Bu sistemde, bir seçim bölgesinde her partinin aldığı oy toplamı, sırasıyla 1’e, 2’ye, 3’e, 4’e … bölünür ve o seçim bölgesinin çıkaracağı milletvekili sayısına ulaşıncaya kadar bu işleme devam edilir¹². Elde edilen paylar, parti farkı gözetmeksizin, büyükten küçüğe doğru sıralanır. Milletvekillikleri bu sıralamaya göre partilere tahsis edilir¹².

Örneğin, 7 milletvekili çıkaracak bir seçim bölgesinde A Partisi 60.000, B Partisi 25.000, C Partisi 14.000 oy almış olsun. Bu durumda aşağıdaki tablo oluşur:

PartilerOy/1Oy/2Oy/3Oy/4Oy/5Partinin çıkardığı milletvekili sayısı
A Partisi60.00030.00020.00015.00012.0004
B Partisi25.00012.5008.3336.2505.0002
C Partisi14.0007.0004.6673.5002.8001

En yüksek 7 rakam ve bu rakamın denk geldiği partiler tespit edilerek çıkarılacak milletvekillikleri bulunur (kalın yazılı olanlar). Buna göre A partisi 4, B partisi 2 ve C partisi 1 milletvekili çıkarır.

Dhont sistemi Türkiye’de de uygulanmaktadır²³⁴. Ancak bu sistemde baraj uygulaması da vardır. Yani bir parti yüzde 10’luk barajı geçemezse milletvekili çıkaramaz³⁴.

import heapq # max-heap veri yapısı için heapq modülünü içe aktar

# Partilerin aldıkları oy sayılarını ve seçim bölgesinin çıkaracağı milletvekili sayısını girdi olarak al
oylar = {"A": 60000, "B": 25000, "C": 14000} # Partilerin aldıkları oy sayılarını bir sözlük içinde tut
n = 7 # Seçim bölgesinin çıkaracağı milletvekili sayısı

# Girdileri doğrula
assert isinstance(oylar, dict) # oyların bir sözlük olduğunu kontrol et
assert all(isinstance(parti, str) for parti in oylar) # partilerin string olduğunu kontrol et
assert all(isinstance(oy, int) and oy > 0 for oy in oylar.values()) # oyların pozitif tam sayı olduğunu kontrol et
assert isinstance(n, int) and n > 0 # milletvekili sayısının pozitif tam sayı olduğunu kontrol et
assert n <= sum(oylar.values()) # milletvekili sayısının oyların toplamından küçük veya eşit olduğunu kontrol et

# Partilerin aldıkları oy sayılarını 1'den başlayarak artan şekilde böl ve elde edilen payları bir liste içinde tut
def paylari_hesapla(oylar, n):
    """Partilerin aldıkları oy sayılarını 1'den n'e kadar olan sayılara bölerek elde edilen payları bir liste içinde döndüren fonksiyon"""
    paylar = [] # Payları tutacak boş bir liste oluştur
    for parti in oylar: # Her parti için
        for i in range(1, n+1): # 1'den n'e kadar olan sayılar için
            pay = oylar[parti] / i # Partinin aldığı oy sayısını i'ye böl
            paylar.append((pay, parti)) # Elde edilen payı ve partiyi bir demet olarak listeye ekle
    return paylar

# Listeyi büyükten küçüğe doğru sırala ve ilk n tane payı seç
def en_buyuk_n_payi_sec(paylar, n):
    """Bir liste içindeki paylardan en büyük n tanesini seçen ve seçilen payları bir liste içinde döndüren fonksiyon"""
    secilen_paylar = heapq.nlargest(n, paylar) # En büyük n tane payı max-heap veri yapısı kullanarak bul
    return secilen_paylar

# Seçilen payların hangi partilere ait olduğunu bul ve her parti için çıkardığı milletvekili sayısını hesapla
def sonuclari_hesapla(secilen_paylar):
    """Seçilen payların hangi partilere ait olduğunu bulan ve her parti için çıkardığı milletvekili sayısını bir sözlük içinde döndüren fonksiyon"""
    sonuclar = {} # Sonuçları tutacak boş bir sözlük oluştur
    for pay, parti in secilen_paylar: # Her seçilen pay ve parti için
        if parti not in sonuclar: # Eğer partinin sonuçlarda kaydı yoksa
            sonuclar[parti] = 1 # Partinin çıkardığı milletvekili sayısını 1 olarak ekle
        else: # Eğer partinin sonuçlarda kaydı varsa
            sonuclar[parti] += 1 # Partinin çıkardığı milletvekili sayısını 1 arttır
    return sonuclar

# Sonuçları ekrana yazdır
def sonuclari_yazdir(sonuclar):
    """Sonuçları ekrana yazdıran fonksiyon"""
    print("Dhont sistemi ile hesaplanan sonuçlar:")
    for parti in sonuclar: # Her parti için
        print(f"{parti} partisi {sonuclar[parti]} milletvekili çıkardı.") # Partinin adını ve çıkardığı milletvekili sayısını yazdır

# Ana program akışı
paylar = paylari_hesapla(oylar, n) # Payları hesapla
secilen_paylar = en_buyuk_n_payi_sec(paylar, n) # En büyük n tane payı seç
sonuclar = sonuclari_hesapla(secilen_paylar) # Sonuçları hesapla
sonuclari_yazdir(sonuclar) # Sonuçları yazdır

Kaynak:
(1) D’Hondt seçim sistemi nedir, ne demek? D’Hondt sistemi hesaplama örnekleri. https://www.cnnturk.com/turkiye/dhondt-sistemi-nedir-ne-demek-dhondt-sistemi-hesaplama-ornekleri.
(2) D’Hondt sistemi – Vikipedi. https://tr.wikipedia.org/wiki/D%27Hondt_sistemi.
(3) D’Hondt (DONT) seçim sistemi nedir? D’Hondt sisteminde oylar nasıl …. https://www.ntv.com.tr/galeri/2023-secim/dhondt-dont-secim-sistemi-nedir-dhondt-sisteminde-oylar-nasil-hesaplaniyor,EotEKigN_0GQSwaL7rEBXA.
(4) Yeni seçim teklifinde var: D’Hondt sistemi nedir, nasıl çalışır?. https://www.diken.com.tr/yeni-secim-teklifinde-var-dhondt-sistemi-nedir-nasil-calisir/.

Üç Vilayetin İçinden 

Ellerini alıp gidiyorum, görsünler 
Perşembeden belki başkasına 
Pazarlara sığmıyor esmerler 

Ellerini alıp yumuyorum, ellerimle 
Hem soğuksun, ürküyorum 
Hem de ısıtıyor için, içimi 

Ellerini alıp götürüyorum, bilmiyorsun 
Boşlukta birikiyor yokluğun 
Valizler konuşuyor, çarpışıyor 

Ellerini alıp götürüyorum 
Ağırlığın gizleniyor gülüşünle 
Eteklerine tutunuyor zaman 

Ellerini alıp götürüyorum, sessizce 
Hem benimle hem de değilsin 
Zamana sığınıyorum sezgiden 

Ellerini alıp götürüyorum, çınlıyor 
Titrek “s” harfleriyle
Soğuk sular çağlasın dursun 

Ellerini alıp götürüyorum 
Üç vilayetin orta yerinde 
Saçların çözülecek, üşüyecek 

Ellerini alıp götürüyorum 
Yaylalardan aşağısı gölgelerin 
Anadolu eskisi bir köye uzanıyorsun 

İzninle, ellerini alıp götürüyorum 
İmgeler sansürleniyor göğsünde 
Ellerin, ellerim konuşuyor, çarpışıyor 

S. İşbaş

Penisilin

1 ve 2. Dünya Savaşlarında, ölümler silah veya şarapnelden ziyade enfeksiyonlardan kaynaklanmıştır.

Penisilin, 1928 yılında Alexander Fleming tarafından tesadüfen keşfedilmiş ancak üretilmesi oldukça zor olduğundan 11 yıl ilgi görmeyen bir makale olarak raflarda beklemiştir. 2. Dünya Savaşı ile birlikte artan enfeksiyon ölümleri nedeniyle tekrar gündeme gelmiştir.

ABD, Manhattan Projesinden (nükleer silah üretimine dair proje) sonra mali ve siyasi olarak en çok antibiyotiğin üretimini desteklemiştir.

1941 yılında dünyada yalnızca 10 kişiye yetecek kadar bulunan penisilin geliştirilen yeni biyoteknolojik yöntemler ile ve artıran üretim kapasitesi sayesinde yaygınlaştırıldı.

1943 yılına geldiğimizde 1000 kişiye uygulama kapasitesi bulunan penisilin 1945 yılında milyona ulaşabilmiştir. Doğal yollardan üretimi oldukça zor olduğundan endüstriyel gelişime ihtiyaç duyuyordu.

60lı yıllara geldiğimizde sentetik olarak penisilinin üretimi iyice yaygınlaşmıştır.

Öte yandan bakteriler de boş durmuyorlar. Mutasyonlarla antibiyotik direnci kazanıyorlar. Bu durum da kullanılan ilaç gramajlarını artıyor.

Woodall Sayıları Octave/Matlab, Python, Javascript, Ruby, C#

Allan J. Cunningham ve H. J. Woodall tarafından 1917 yılında keşfedilmiş sayılardır.

Woodall Sayıları Octave/Matlab, Python, Javascript, Ruby, C#

Allan J. Cunningham ve H. J. Woodall tarafından 1917 yılında keşfedilmiş sayılardır.

2n.n – 1 şeklinde ifade edilir.

Woodall sayıları: 1, 7, 23, 63, 159, 383, 895…

İleri düzey bilgi için tıklayın

Octave/Matlab:

total = [];
for i = 1:100
gecici = ((2^i) * i) - 1;
total(length(total)+1) = gecici;
endfor

plot(total)

Python:

import math

total = []

for i in range(1,10):
    ustel = math.pow(2,i)
    carpim = ustel * i
    sonuc = carpim - 1
    total.append(sonuc)

print(*total)

JavaScript:

var total = [];

for (var i = 1; i < 10;i++) {
var ustel = Math.pow(2,i);
var carpim = ustel * i;
var sonuc = carpim - 1;
total.push(sonuc)
}

console.log(total)

Ruby:

total = Array.new

for i in 1..10
ustel = 2**i
carpim = ustel*i
sonuc = carpim - 1
total.push(sonuc)
end

total

C#:

var total = new List();

            for (int i = 1; i < 10; i++)
            {
                var ustel = Math.Pow(2, i);
                var carpim = ustel * i;
                var sonuc = carpim - 1;
                total.Add((int)sonuc);
            }

            foreach (var item in total)
            {
                Console.Write(item + " ");
            }

            Console.Read();

 

Lucas Sayıları JavaScript, Python, C#, Ruby, Octave/Matlab

Lucas Sayıları

L0 = 2
L1 = 1
Ln = Ln-1 + Ln-2 for n>1

2, 1, 3, 4, 7, 11, 18, 29, 47, 76, 123, 199, 322, 521, 843, 1364, 2207, 3571, 5778…

Daha fazla bilgi için:
* http://oeis.org/A000032
* http://www.maths.surrey.ac.uk/hosted-sites/R.Knott/Fibonacci/lucas200.html
* http://mathworld.wolfram.com/LucasNumber.html

JavaScript:

var dizi = [2, 1];

for (var i = 0; i < 15; i++) {
  var gecici = 0;
  gecici = dizi[i] + dizi[i + 1];
  dizi.push(gecici);
}
console.log(dizi)

Python:

dizi = [2,1]

for i in range(15):
    gecici = 0
    gecici = dizi[i] + dizi[i+1]
    dizi.append(gecici)

print(dizi)

C#:

var dizi = new List() { 2, 1 };

            for (int i = 0; i < 15; i++)
            {
                var gecici = 0;
                gecici = dizi[i] + dizi[i + 1];
                dizi.Add(gecici);
            }

            foreach (var item in dizi)
            {
                Console.WriteLine(item);
            }

            Console.ReadKey();

Ruby:

dizi = Array[2,1]

for i in 0..15
    gecici = 0
    gecici = dizi[i] + dizi[i+1]
    dizi.push(gecici)
end

dizi

Octave/Matlab:

total = [2,1]

for i = 1:150
gecici = 0;
gecici = total(i) + total(i+1);
total(length(total)+1) = gecici;
endfor

plot(total)


 

Smith Sayıları Javascript, Python, C#, Ruby

Smith Sayıları

1 ‘den büyük asal olmayan bir tamsayının rakamlarının toplamı, sayı asal çarpanlarına ayrılarak yazıldığında, bu yazılışta bulunan tüm asal sayıların rakamlarının toplamına eşit oluyorsa bu tür sayılara Smith sayısı adı verilir.

4, 22, 27, 58, 85 vb.

Örneğin 121;

121’in asal çarpanları 121 = 11.11

121 sayısının sayı değerlerinin toplamı: 1 + 2 + 1 = 4

Asal çarpanlarının sayı değerlerinin toplamı: 1+1+1+1 = 4

Öyleyse 121 Smith sayısıdır.

Örneğin 22;

22’nin asal çarpanları 22 = 2.11

22’nin sayı değerleri toplamı  2+2 = 4

Asal çarpanlarının sayı değerlerinin toplamı 2+1+1 = 4

Öyleyse 22 Smith sayısıdır.

Daha fazla bilgi

Daha fazla bilgi

 JavaScript:

/**
 * Created by SEMİH on 13.06.2018.
 */
var smithSayilari = [];

function AsalCarpanlariBul(n) {
    var dizi = [];
    var tamBolenler = [];
    n = parseInt(n);
    uzunluk = n;
    for (var i = 2; i < uzunluk; i++) {
        while (n % i === 0) {
            n = n / i;
            tamBolenler.push(i);
        }
    }
    for (var k = 0; k < tamBolenler.length; k++) {
        if (AsalMi(tamBolenler[k])) {
            dizi.push(tamBolenler[k]);
        }
    }
    return dizi;
}

function AsalMi(n) {
    if(n === 2){
        return true
    } else{
        for (var i = 2; i < n; i++) {
            if (n % i === 0) {
                return false;
                break;
            } else {
                return true;
            }
        }
        }
}

function diziElemanlariniTopla(dizi) {
    var diziToplam = 0;
    for (var i in dizi) {
        var gecici = dizi[i].toString();
        for (var j = 0; j < gecici.length; j++) {
            diziToplam += parseInt(gecici[j]);
        }
    }
    return diziToplam;
}

function sayiDegerleriniTopla(sayi) {
    var sayiDegerleriToplami = 0;
    sayi = sayi.toString();
    for (var i = 0; i < sayi.length; i++) {
        sayiDegerleriToplami += parseInt(sayi[i]);
    }
    return sayiDegerleriToplami;
}

for (var i = 2; i < 1000; i++) {
    if (diziElemanlariniTopla(AsalCarpanlariBul(i)) === sayiDegerleriniTopla(i)) {
        smithSayilari.push(i);
    }
}

console.log(smithSayilari);

Python:

smithSayilari = []

def AsalCarpanlariBul(n):
    dizi = []
    n = int(n)
    tamBolenler = []        
    for i in range(2,n):        
        while n % i == 0:
            n = n / i
            tamBolenler.append(i)
    for i in tamBolenler:
        if(AsalMi(i)):
            dizi.append(i)
    return dizi

def AsalMi(n):
    if n == 2:
        return True
    for i in range(2,n):
        if n % i == 0:
            return False
            break
        else:
            return True
        
def diziElemanlariniTopla(dizi):
    diziToplam = 0
    for i in dizi:
        gecici = str(i)
        for j in range(len(gecici)):
            diziToplam += int(gecici[j])
    return diziToplam

def sayiDegerleriniTopla(sayi):
    sayiDegerleriToplam = 0
    sayi = str(sayi)
    for i in range(len(sayi)):
        sayiDegerleriToplam += int(sayi[i])
    return sayiDegerleriToplam


for k in range(2,1000):
    if diziElemanlariniTopla(AsalCarpanlariBul(k)) == sayiDegerleriniTopla(k):
         smithSayilari.append(k)

print(smithSayilari)

C:

static void Main(string[] args)
        {
            var smithSayilari = new List();

            for (int i = 4; i < 1000; i++)
            {
                if (DiziElemanlariniTopla(AsalCarpanlariniBul(i)) == SayiDegerleriniTopla(i))
                {
                    smithSayilari.Add(i);
                }
            }

            foreach (var item in smithSayilari)
            {
                Console.WriteLine(item);
            }
            Console.ReadKey();
        }

        private static List AsalCarpanlariniBul(int n)
        {
            var dizi = new List();
            var tamBolenler = new List();
            var uzunluk = n;
            for (int i = 2; i < uzunluk; i++)
            {
                while (n % i == 0)
                {
                    n = n / i;
                    tamBolenler.Add(i);
                }
            }

            foreach (var item in tamBolenler)
            {
                if (AsalMi(item))
                {
                    dizi.Add(item);
                }
            }
            return dizi;
        }

        private static bool AsalMi(int n)
        {
            if (n == 2)
            {
                return true;
            }
            else
            {
                for (int i = 2; i < n; i++)
                {
                    if (n % i == 0)
                    {
                        return false;
                        break;
                    }
                }
                return true;
            }
        }

        private static int DiziElemanlariniTopla(List dizi)
        {
            int diziToplam = 0;
            foreach (var item in dizi)
            {
                var gecici = item.ToString();
                for (int i = 0; i < gecici.Length; i++)
                {
                    diziToplam += (int)char.GetNumericValue(gecici[i]);
                }
            }
            return diziToplam;
        }

        private static int SayiDegerleriniTopla(int sayi)
        {
            var sayiDegerleriToplami = 0;
            var gecici = sayi.ToString();
            for (int i = 0; i < gecici.Length; i++)
            {
                sayiDegerleriToplami += (int)char.GetNumericValue(gecici[i]);
            }
            return sayiDegerleriToplami;
        }

Ruby:

smithSayilari = Array.new

def AsalCarpanlariBul(n)
dizi = Array.new
tamBolenler = Array.new
n = n.to_i
for x in 2..n - 1
while n % x == 0
n = n / x
tamBolenler.push(x)
end
end
for k in tamBolenler
if AsalMi(k) then
dizi.push(k)
end
end
return dizi
end

def AsalMi(n)
if n == 2 then
return true
else
  for i in 2..n
if n % i == 0 then
return false
break
else
  return true
end
end
end
end

def DiziElemanlariniTopla(dizi)
diziToplam = 0
i = 0
while i < dizi.length do
    dizi[i].to_s.each_char { | c | diziToplam += c.to_i
    }
i += 1
end
return diziToplam
end

def SayiDegerleriniTopla(sayi)
sayiDegerleriToplami = 0
sayi.to_s.each_char { | c | sayiDegerleriToplami += c.to_i
}
return sayiDegerleriToplami
end

for i in 4. .1000
if DiziElemanlariniTopla(AsalCarpanlariBul(i)) == SayiDegerleriniTopla(i) then
smithSayilari.push(i)
end
end
smithSayilari

İkiz Asal Sayılar JavaScript, Python, C#, Ruby, Octave/Matlab

İkiz Asal Sayılar

İkiz asallar, aralarındaki fark 2 olan asal sayılar. Örneğin 3-5, 5-7, 11-13 ikiz asallardır. 2 – 3 çifti hariç iki asal sayı arasındaki fark da zaten en az 2 olabilir. İkiz asalların sonsuz tane olmasına ilişkin soru, sayılar kuramının yıllardır çözülememiş en büyük problemlerinden birisidir.(Kaynak)

Daha fazla bilgi

Daha fazla bilgi

JavaScript:

var dizi = [];

function asalMi(n) {

  if (n === 1) {
    return false;
  } else if (n === 2) {
    return true;
  } else {
    for (var x = 2; x < n; x++) {
      if (n % x === 0) {
        return false;
      }
    }
    return true;
  }
}

for (var i = 1; i < 1000; i++) {
  if (asalMi(i) && asalMi(i + 2)) {
    dizi.push([i, i + 2])
  }
}
console.log(dizi)

Python:

dizi = []

def AsalMi(n):
    if n == 1:
        return False
    elif n == 2:
        return True
    else:
        for x in range(2,n):
            if n % x == 0:
                return False
        return True

for i in range(1,1000):
    if(AsalMi(i) and AsalMi(i + 2)):
        dizi.append([i,i + 2])

print(dizi)

C#:

static void Main(string[] args)
        {
            var dizi = new List();

            for (int i = 1; i < 1000; i++)
            {
                if (AsalMi(i) && AsalMi(i+2))
                {
                    dizi.Add(i);
                }
            }
        }

        private static bool AsalMi(int sayi)
        {
            if (sayi == 1)
            {
                return false;
            }
            else if (sayi == 2)
            {
                return true;
            }
            else
            {
                for (int i = 2; i < sayi; i++)
                {
                    if (sayi % i == 0)
                    {
                        return false;
                    }
                }
                return true;
            }
        }

Ruby:

dizi = Array.new

def AsalMi(n)
    if n == 1 then
        return false
    elsif n==2 then
        return true
    else
        for i in 2..1000
            if n % i == 0
                return false
            end
        return true
        end
    end
end

for i in 1..1000
    if(AsalMi(i) && AsalMi(i+2))
        dizi.push([i,i+2])
    end
end

dizi    

Octave/Matlab:

total = cell(1,1)

function retval = AsalMi(n)
if(n==1)
retval = 0
return
elseif (n==2)
retval = 1
return
else
for i = 2:n - 1
if (rem(n,i) == 0)
retval = 0
return
endif
endfor
retval = 1
endif
endfunction

for k = 1:100
X = AsalMi(k)
Y = AsalMi(k+2)
if(and(X,Y))
total(length(total)+1,length(total)+1) = [k,k+2]
endif
endfor

Hilbert Sayısı JavaScript, Python, C#, Ruby, Octave/Matlab

Hilbert Sayısı

Bir eksiği 4’e tam bölünebilen pozitif tam sayılara Hilbert Sayısı denir.

n = 4k + 1

n=1 (mod 4)

Bazı Hilbert Sayıları: 1, 5, 9, 13, 17…

Daha fazla bilgi

JavaScript:

var dizi = []

for (var i = 0; i < 1000; i++) {
  if ((i - 1) % 4 == 0) {
    dizi.push(i)
  }
}

console.log(dizi)

Python:

hilbertSayilari = []
for x in range(0,1000):
    if (x-1) % 4==0:
        hilbertSayilari.append(x)

print(hilbertSayilari)

C#:

var dizi = new List();

            for (int i = 0; i < 1000; i++)
            {
                if ((i - 1) % 4 == 0)
                {
                    dizi.Add(i);
                }
            }

            foreach (var item in dizi)
            {
                Console.WriteLine(item);
            }
            Console.ReadKey();

Ruby:

dizi = Array.new

for i in 0..1000
    if (i-1) % 4 == 0 then
        dizi.push(i)
    end
end

dizidizi = Array.new

for i in 0..1000
    if (i-1) % 4 == 0 then
        dizi.push(i)
    end
end

dizi

Octave/Matlab

dizi = []

for i = 1:100
if(mod((i-1),4)==0)
dizi(length(dizi)+1) = i
endif
endfor

plot(dizi)

 

Tau Sayıları JavaScript, Python, C#, Ruby, Octave/Matlab

Tau Sayıları

Tam bölenlerinin sayısına kalansız bölünebilen sayılara Tau sayısı denir.

Örneğin 12,

12’nin tam bölenleri: 1,2,3,4,6,12

12’nin tam bölenlerinin sayısı: 6

12 mod 6 = 0 ise 12 bir Tau sayısıdır

Bazı Tau sayıları: 1, 2, 8, 9, 12, 18, 24, 36, 40, 56, 60 (OEIS)

Daha fazla bilgi

 JavaScript:

var dizi = [];

for (var i = 1; i < 1000; i++) {
  var geciciDizi = [];
  for (var j = 1; j < i + 1; j++) {
    if (i % j == 0) {
      geciciDizi.push(j);
    }
  }
  if (geciciDizi.length != 0) {
    if (i % geciciDizi.length == 0) {
      dizi.push(i)
    }
  }
}
console.log(dizi)

Python:

tauSayisi = []

for x in range(1,1000):
    dizi = []
    for y in range(1,x + 1):
            if x % y == 0:
                dizi.append(y)
    if len(dizi) != 0:
        if x % len(dizi) == 0:
            tauSayisi.append(x)

C#:

var dizi = new List();

            for (int i = 1; i < 1000; i++)
            {
                var geciciDizi = new List();
                for (int j = 1; j <= i; j++)
                {
                    if (i % j == 0)
                    {
                        geciciDizi.Add(j);
                    }
                }
                if (geciciDizi.Count != 0)
                {
                    if (i % geciciDizi.Count == 0)
                    {
                        dizi.Add(i);
                    }
                }
            }

            foreach (var item in dizi)
            {
                Console.WriteLine(item);
            }
            Console.ReadKey();

Ruby:

tauSayisi = Array.new

for x in 1..1000
    dizi = Array.new
    sayi = x+1
    for y in 1..sayi
        if x % y == 0 then
        dizi.push(y)
        end
    end
    if dizi.size > 0 then
        if x % dizi.size == 0 then
            tauSayisi.push(x)
        end
    end
end

Octave/Matlab:

tauSayisi = [];

for i = 1:1000
dizi = [];
for k = 1:i
if (mod(i,k)==0)
dizi(length(dizi)+1) = k;
endif
endfor
if(length(dizi) != 0)
if(mod(i,length(dizi))==0)
tauSayisi(length(tauSayisi) + 1) = i
endif
endif
endfor

plot(tauSayisi)