Hata yapmak çok doğal ve önemli bir şeydir. Hata yapılmalıdır ki eksiklerimizi tamamlayalım. Program gerçekten güzel, ama eksik. Girilen sayı, 1 ve "girilen sayı" arasındaki sayılara bölünsün. Eğer ki kalansız bölebilen bir sayı yoksa o sayı asaldır. Bunu Python'da yapmayı deneyin.

Ben sizin için yaptım. Eğer yapamazsanız size nasıl yaptığımı gösterebilirim.
 
Aslında döngülere girmeden basit olsun diye sadece if, elif ve else ile yapmaya çalışmıştım. Döngüler, range, def komutu işin içine girerse uzuyor. Yaparım ama zamanımı alır biraz. En iyisi siz paylaşın bari eksik bırakmayalım programı madem konu açtık
 
print ("Asal sayı bulma programına hoşgeldiniz")
while True:
i=1
x=6
asalx = int(input("Sayı giriniz: "))
if i<asalx:
while x>5:
i=i+1
if asalx%i==0:
if i<asalx:
print(asalx, "sayısı asal değildir")
x=4
else :
print(asalx, "sayısı asaldır")
break
else :
print(asalx, "sayısı asal değildir")


Web Sitesi yapımına merak salmadan önce Python'la uğraşıyordum. O zamanda beri açıp da bakmamıştım. Sayenizde (@Rahasa )Python'da en azından hala bir şeyler yapabildiğimi anladım. Belki daha kolay veya daha az kodla yapılabiliyordur ama ben bu şekilde yaptım. Program çalışıyor, 999 983 sayısının dahi asal sayı olduğunu bulabildi.
 
Son düzenleme:
Hocam 0 ile 1 tanımsız onları da tanıttın mı eksiksiz bir kodlama çalışması oldu bence
Yazdığınız en son else kod bloğundan önce 1 boşluk bırakıp elif ile tanıttım oldu şöyle;


Tabi saat biraz geç oldu şimdi yarın bu program ile denemeler yapacağım olursa çok faydalı olur.
 
If i<asalx: yazmıştım. i'nin değeri 1 olduğu için 1 veya 1'den küçükse en alttaki Else bloğu devreye giriyor. Negatif sayılar, 0 ve 1 'i bu sebepten asal sayı kabul ediyor. Bu arada gönderdiğiniz resimde en alttaki Else bloğunun yeri olmamış gibi gördüm.
 
Loop kullanmadan bulamazsiniz sayinin asal olup olmadigini.

999983 sayisiyla bir deneyin algoritmanizi.

Bir de sayinin asal olup olmadigini anlamak icin kendisinden kucuk tum sayilarla bolunebilir olup olmadigini test etmeye gerek yok.

2 ile bolunebiliyorsa, x/2 ile de bolunebiliyordur; 3 ile bolunebiliyorsa x/3 ile bolunebiliyordur ... Dolayisiyla karekok'une bolunebiliyorsa, tam kare bir sayi demektir.

python loopunu while( i*i <= x) seklinde yaparsaniz test etmeniz gereken sayilarin yarisini elemis olursunuz zaten kafadan.
 
Son düzenleme:

Benim de aklıma geldi ama performans için karıştırmaya gerek yok diye düşündüm. Özellikle büyük sayılarda çok işe yarar.
 
Son düzenleme:
Evet zamanında Python'a merak salmıştım. Yardım etmeye çalışacağım.

sayi = int(input("Sayı gir:"))
bolen=0
for i in range(1,sayi+1):
if sayi%i==0:
bolen+=1
if bolen==2:
print("Girilen sayı ASALDIR")
else: print("Sayı Asal DEĞİLDİR")
 
En son atılan resimdeki hepsini gösteriyor. 999.983'ü asal olarak gösterdi. Bence program tamamdır.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…