Nerde hata yapıyorum?[yardım]

Herhangi bir sayıya kadar olan tüm asal sayıları liste halinde veren bir fonksiyon yazmak istiyorum.Örneğin: Girdi: 14, Çıktı: [2,3,5,7,11,13]

Bu kodu yazabilecek var mı?

-- coding: utf-8 --

def primes(m):
d = []
for num in range(2,m):
for i in range(2,num):
if num %i ==0:
break
else:
d.append(num)
#print(’\n’, num, ‘bir asal sayıdır\n’)
return d
print(primes(14))

Konuyu açalı 2 dakika olmuş tekrardan böyle bi şey yazmana gerek yok.
Python bilgim yok ama algoritmasını yazayım:

  1. Kullanıcıdan hangi sayıya kadar asal sayıları bulacağını al. -x olsun.
    2.Döngü için bir değişken oluştur ‘a’ olsun.
    3.Döngü kur, a=2’den başlasın, a<=x olduğu sürece dönsün, a birer birer artsın.
  2. Döngünün içine b=2;b<a;b++ şeklinde bi döngü daha kur. Bu döngü sayılar asal mı değil mi diye kontrol edecek.
  3. İçteki döngünün içine şunu yaz if( a denk değilse b’ye ve a%b == 0) break; print(a); Yani döngü boyunca kendisine kadar olan sayılara bölünüp bölünmediğini kontrol edecek. Bölünüyorsa döngüden çıkacak bölünmüyorsa sonraki sayıyı kontrol edecek. Hiçbirine bölünmüyorsa o sayıyı yazdıracak.

Bu şekilde ne kadar anlaşılır oldu bilmiyorum. İnternetten yardım alabilirsin.
yukarıda kullandığım ‘%’ mod alma operatörü. break ise döngüyü kırma komutu, pythondaki karşılığını bilmiyorum.

teşekkürler arkadaşlar çözdüm