Asal sayı tespiti hatamı bulamıyorum

Merhaba python öğrenmeye yeni başladım ve bir asal ayı bulma kodu yazmayı denedim ve ortaya böyle birşey çıktı lakin bazı sorunlar var bunlar mesela bir sayı girdiğinizde örneğin 11 çok sayıda 11 asal sayıdır şeklinde yazdırıyor ama ben yalnızca bir kez yazılmasını istiyorum ikinci ve en büyük sorun sonu 5 ile biten sayılarda 45 gibi hem if i hemde else i yazdırıyor yani bir tespit yapmıyor bu konuda bana hatamı gösterirseniz sevinirim

while (True):
a = int(input(“Lütfen bır sayı giriniz:”))

for i in range (2,a):
    if ( a % i == 0):
        print(a,"Bir asal sayi degildir")
        break
    else:
        print(a,"Bir asal sayidir")
1 Beğeni

Merhaba, asal sayı kontrol işlemi tamamlanmadan ekrana sonuç yazdırmak hataya sebep olabilir bence. Çünkü bir sayı belli bir sayıya kadar bölünmeyebilir ve bölünebildiği sayıya gelene kadar birçok kez asal sayıdır diye yazabiliriz. Bu yanlıştır. İlk bölündüğü sayıda döngüyü bitiririz ve yeni sayıya geçeriz. Ki sizde öyle yapmışsınız ama aynı zamanda bölünemediği sayılarıda yazdırınca hata meydana gelmiş. Kodu incelerseniz daha iyi anlayabilirsiniz.

# -*- coding: utf-8 -*-
asal = True # sayının asal olup olmadığını kontrol etmek için
while (True):
    a = int(input("Lütfen bir sayı giriniz:"))
    for i in range (2,a):
        if((a%i)==0):
	    # herhangi bir sayıya bölünürse asal değildir
            asal = False
            break
	else:
	    asal = True

    if((a<=2) or asal): # sayı 2 yada daha küçük bir sayı girilebilir
	print("Sayı asal")
    else:
	print("Sayı asal değil")