FideLity

Kilopat
Katılım
14 Ekim 2017
Mesajlar
2.581
Çözümler
15
Daha fazla  
Cinsiyet
Erkek
Python ile hiç karışık fonksiyonlara girmeden sadece if, elif ve else ile basit bir şekilde kendi bulduğum Phyton kodunu sizlerle paylaşacağım. Kod, klavye ile girilen sayının asal olup olmadığını bize söylüyor. Resim olarak göstereyim;
asalsayi.png


Yazı ile göstermek gerekirse;
print ("Asal sayı bulma programına hoşgeldiniz")
while True:
asalx = int(input("Sayıyı giriniz: "))
if asalx == 2 or asalx == 3 or asalx == 5:
print (asalx, "sayısı asaldır.")
elif asalx%2==0 or asalx%3==0 or asalx%5==0 or asalx==1:
print (asalx, "sayısı asal değildir")
else:
print (asalx, "sayısı asaldır.")

Yalnız IDLE Shell içinde resimdeki gibi gerekli boşlukları bırakmanız gerekiyor. Yoksa hata verir çalışmaz :)(y)
 
Son düzenleyen: Moderatör:
49 sayısını denediniz mi?
2 yi tanıtınca 4, 6, 8 katları olduğu için sıkıntı olmuyor. Aynı şekilde 3 tanıtınca 6, 9. Son olarak 5'i tanıttım fakat 7'yi atlamışım. Sayenizde ufak bir hatayı görmüş oldum teşekkürler :)
Yeni resim yani doğrusu olan budur;
asalsayi.png


Görüldüğü gibi if bloğuna asalx==7, elif bloğunda ise sağda asalx%7==0 (Girilen sayının 7'ye bölümünden kalan 0 ise) eklenmiştir. Bu şekilde program sorunsuz çalışmaktadır. Ufak bir ayrıntı gözden kaçırmışım. Yazı olarak;

print ("Asal sayı bulma programına hoşgeldiniz")
while True:
asalx = int(input("Sayıyı giriniz: "))
if asalx == 2 or asalx == 3 or asalx == 5 or asalx == 7:
print (asalx, "sayısı asaldır.")
elif asalx%2==0 or asalx%3==0 or asalx%5==0 or asalx%7==0 or asalx==1:
print (asalx, "sayısı asal değildir")
else:
print (asalx, "sayısı asaldır.")
 
Son düzenleme:
Böyle bir programı bu şekilde yapmak çok zor 7'yi de geçtim. 11,13,17,19 bu sayıları tek tek girmeniz gerekir bunun sonu yok.
Hayır. Onları girmenize gerek yoktur. Sadece 7 sayısını atlamışım onu da yaptım. İstediğiniz sayıyı deneyebilirsiniz komut çalışıyor.

2, 3, 5 ve 7 ( 2, 3, 5 ve 7 rakamı hariç ) ile bölündüğünde kalanı 0 olan sayılar ve 1 sayısı asal değildir.
Bunlar dışındaki tüm sayılar asaldır. Komut bu şekilde sıkıntısız çalışmaktadır.
 
Tam bunu diyecektim :)

Eline sağlık, biraz matematik biraz mantıkla yapılmış güzel bir çalışma :)
Çok teşekkür ederim. Yalnız ne kadar uğraşsam hatalar çıkıyor ya. Biraz daha uğraşmam gerekecek.
Programınız 143 sayısına asal diyor. Oysaki 143, 11 ve 13'e bölünebilir ve asal değildir.
Hocam kapsamlı bir araştırma ile şu sonuca vardım. Klavye ile girdiğiniz sayı asal ilse kesinlikle doğruyu gösteriyor. Sapma yok. Asal değilse de 11 ve 13.. Dediğiniz gibi uzar yanlış gösterebiliyor. Fakat şöyle bir şey de var girdiğimiz sayı ya asal değilse bunu asal olarak gösteriyorsa? Mantık hatası olduğu için dediğiniz doğrudur. Fakat giriş seviyesinde birine göre sizce nasıl yazmışım? :sansür:
 
Son düzenleme:
Uyarı! Bu konu 5 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Yeni konular

Geri
Yukarı