Zeka soruları sitesi

Zeka sorularından oluşan ve Türkiyenin en zeki kişilerinin toplanacağı adresimiz zeka küp zeka soruları yayına geçmiş bulunuyor. Sitemize üye olmak oldukça kolay. Google hesabınızla da giriş yapabilirsiniz. İçinde binlerce zeka sorusu, programlama sorusu olacak sitemizde siz de yerinizi alıp günde bir kaç soru çözüp zekanızı arttırabilirsiniz.

Sitemizin adresi https://zekakup.com

52 Kartlık Deste Soruları

1-52 arası numaraların olduğu bir deste kart var. Deste rastgele karıştırılıyor. Sonra birinci kart açılıyor. İlk açılan kart icin 1 puan her zaman alınıyor. Ondan sonra her açılan kartın numarası o ana kadar açılan en yüksek numaradan fazla ise 1 puan, değilse 0 puan alınıyor. Bu oyun oynanırsa oyundan alınması beklenen puan ne kadardır?

52 adet kart 1 den 52 ye kadar numaralandırılıp güzelce karıştırılıyor. Rastgele 3 kart çekiliyor ve masaya soldan sağa açılıyor. Masada açılan kartların küçükten büyüğe sıralanma olasılığı nedir? (Örneğin 8, 27, 36)

Python programlama ile para sorusu

Sorumuz şu: Bir adam elindeki çeki bozdurmak için bankaya gitti. Fakat veznedar bir yanlışlık yaptı ve çekin üzerinde yazılı liralar yerine kuruş ve kuruşlar yerine de lira vererek çeki ödedi. Adam da dikkat etmeden paraları cebine koydu. Eve giderken paranın 5 kuruşunu düşürdü. Bu vesile ile parasını saydı ve cebinde çekin değerinin tam iki katı parası olduğunun farkına vardı. Çekin üzerinde yazılı olan miktar ne kadardı? *

Programımız oldukça basit, lira ve kuruşu 100 lük döngülere sokuyoruz ve formülü deniyoruz.

for lira in range(100):
    for kurus in range(100):
        if lira + kurus / 100 == 0:  continue
        if (kurus + (lira - 5) / 100) / (lira + kurus / 100) == 2:
            print(f"Çekin üzerinde yazan miktar: {lira}.{kurus}")
            break

continue kullanmamızın sebebi sıfıra bölünme hatasından kaçmak içindir.

Bir diğer çözüm de şu olabilir

for lira in  range(0,55):
    for kurus in range(lira+5,105):
            if 2*(float(lira)+float(kurus)/100)==float(kurus)+float(lira-5)/100:
                print(str(lira)+"."+str(kurus)+"₺")

Arkadaş sayılar, Python Programlama

İki sayı birbirinin kendisi hariç bölenleri toplamına eşitse bu sayılara arkadaş sayılar denir. (1 dahil)

En küçük arkadaş sayılar 220 ve 284 tür. Neden? Çünkü 220’nin bölenleri olan 1, 2, 4, 5, 10, 11, 20, 22, 44, 55 ve 110 u topladığımızda 284 elde ederiz. 284’ün bölenlerini topladığımızda ise -evet, doğru tahmin ettiniz- 220 elde ederiz. İşte gerçek arkadaşlık.

Python programlama ile 10.000 e kadar olan arkadaş sayıları bulalım. (Bu sayıyı değiştirebilirsiniz.)

def bolenler(n):
  return sum([i for i in range(1,n//2+1) if n%i==0])

arkadas = dict()
for sayi in range(1,10000):
  bt = bolenler(sayi)
  if sayi==bolenler(bt) and sayi<bt:
    arkadas[sayi]=bt
print(arkadas)

En küçük zengin tek sayı, Python programlama

Eğer bir sayının kendisi hariç tam bölenleri toplamı sayıdan büyükse o sayıya zengin sayı diyoruz. Örneğin 12 nin bölenleri 1,2,3,4,6 nın toplamı 16>12 olduğu için zengin sayıdır. En küçük tek zengin sayı nedir?

Basit bir programla bunu bulabiliriz,

def bolenler(n):
  return sum([i for i in range(1,n//2+1) if n%i==0])

sayi = 1
while sayi>bolenler(sayi):
  sayi+=2
print(sayi)