onuromer for döngüsüyle 2den 'sayi'ya kadar olan tüm sayıların bölebilirliğine bakmak istemişsin ama;
if (sayi % i) == 0:
print(f"Girmiş olduğunuz {sayi} sayısı asal değildir")
break
else:
print(f"Girmiş olduğunuz {sayi} sayısı asaldır")
break
İfadesini yazarak 'sayi/i yap eğer kalan 0 ise asal değildir döngüden çık, değilse asaldır döngüden çık.' diyorsun sayi=15 için ifadeyi gözden geçirirsek (i her defasında 1 artacak);
15/2 yap kalan 0 ise ASAL DEĞİLDİR yaz döngüden çık; kalan 0 değil ise ASALDIR yaz döngüden çık demiş oluyorsun
yani i asla artmıyor sadece 2 değerini alıyor ve ifade sonunda 'break' ile döngüden çıkıyor. 'break'i kaldırırsan i 2den sayiya kadar her değeri alır fakat bu seferde her i değerinde ekrana o değere kalansız bölünebilirliğini asal veya asal değil diye yazar bu da matematiksel olarak yanlış bir ifade olur, sayinın asallığını değil çift-tek olma durumunu incelemiş oluruz. Bize sayinin kalansız bölünebildiği bir sayı gerekiyor kalansız bölen sayı gördüğünde döngüden çıkarmalıyız böyle düşünürsen:
while True:
sayi = int(input("Lütfen bir sayi giriniz:"))
isAsal = True
if sayi == 1 :
print(f"Girmiş olduğunuz {sayi} sayısı asal değildir")
else:
for i in range(2,sayi):
if (sayi % i) == 0:
isAsal = False
break
if isAsal == True:
print(f"Girmiş olduğunuz {sayi} sayısı asal sayıdır")
else:
print(f"Girmiş olduğunuz {sayi} sayısı asal değildir")
2 durumlu incelemeler için boolean kullanmak çok rahatlatır, bu şekilde göz atmanı isterim.