Golang ile Arkadaş Sayıların Tespiti

GoLangEvet yine bir Golang program örneği ile beraberiz 🙂 daha önceden de dediğim gibi bir süre önce öğrenmeye başladığım golang ile birşeyler yazmayı öğrendikçe işin keyfine varıyorum.

Aşağıdaki kod parçacığı ile fonksiyon nasıl hazırlanır, bu fonksiyondan birden çok dönüş verisi nasıl alınır ve bunu main içinde nasıl işleyebiliriz onu göreceğiz.

Projemizin konusu Arkadaş Sayılar 1…10000 sayıları arasındaki arkadaş sayıları tespit eden bir program yazalım.

Peki nedir bu arkadaş sayılar derseniz Wikipedia sitesinden ulaşabilirsiniz

import "fmt"

func main() {
	maxSayi := 10000
	for j := 1; j < maxSayi; j++ {

		durum, sayi := ArkadasSayiKontrol(j)
		if durum == true {
			fmt.Printf("%v sayısı %v ile Arkadaş Sayıdır \n", j, sayi)
		}
	}

}

func ArkadasSayiKontrol(sayi int) (bool, int) {

	toplam, toplam2 := 0, 0

	for i := 1; i < sayi; i++ {

		if sayi%i == 0 {
			toplam = toplam + i

		}
	}
	for j := 1; j < toplam; j++ {
		if toplam%j == 0 {
			toplam2 = toplam2 + j

		}
	}
	if sayi == toplam2 && sayi != toplam {
		return true, toplam
	} else {
		return false, toplam
	}

}

buradaki kodlardan da görebileceğiniz üzere func ArkadasSayiKontrol(sayi int) (bool, int) fonksiyonunda girdi olarak integer tipinde veri girişi yaparken dönüş değerini ikili olarak boolean ve integer olarak alabileceğimizi söylüyoruz.

durum, sayi := ArkadasSayiKontrol(j)
if durum == true {
fmt.Printf("%v sayısı %v ile Arkadaş Sayıdır \n", j, sayi)
}

kısmında ise dönen verilerimizi durum ve sayi değerlerine alarak main fonksiyonumuzda değerlemeye alıyoruz.

1…10000 sayıları arasındaki rakamların kontrolünde ise örnek ekran çıktısı şu şekilde olur.

220 sayısı 284 ile Arkadaş Sayıdır
284 sayısı 220 ile Arkadaş Sayıdır
1184 sayısı 1210 ile Arkadaş Sayıdır
1210 sayısı 1184 ile Arkadaş Sayıdır
2620 sayısı 2924 ile Arkadaş Sayıdır
2924 sayısı 2620 ile Arkadaş Sayıdır
5020 sayısı 5564 ile Arkadaş Sayıdır
5564 sayısı 5020 ile Arkadaş Sayıdır
6232 sayısı 6368 ile Arkadaş Sayıdır
6368 sayısı 6232 ile Arkadaş Sayıdır

bir başka kod örneğimizde görüşmek üzere…