Arkadaşlar 1 ile 100 arasındaki asal sayıları bulan kodu yazdım ancak 2'yi asal olarak görmüyor. Sizce koddaki hata nedir.?
for i in range(1,11):
for j in range(2, i):
if(i%j)==0:
break
elif (i%j !=0) and (j==i-1):
print(i)
Asal sayı hatası
3
●297
- 23-08-2018, 12:27:12Hocam c'de yazdım programı 1'den 100 e kadar olan asıl sayıları listeliyor
int main() {
int i,j;
int sayac=0;
for(i=0;i<100;i++)
{
for(j=i;j>1;j--)
{
if(i%j==0)
{
sayac=sayac+1;
}
}
if(sayac==1)
{
printf("%d\n",i);
}
sayac=0;
}
return 0;
} - 25-08-2018, 11:58:31
def asal(n): #1 asal değil sanırım. İstisna kabul edelim ve hemen asal değil (False) döndürelim if n == 1: return False #asal olan tek çift sayı 2. 2 sayısını bir istisna kabul edelim ve hemen asal (True) döndürelim if n == 2: return True #1 ve 2'den kurtulduk artık işimize bakabiliriz. for i in range(2, n): if (n % i) == 0: #bu koşul doğru olduğunda en az bir böleni var - asal değil return False return True #hiç böleni yok sayi = int(input('Bir veya daha büyük bir tam sayı girin: ')) for i in range(1, sayi + 1): if asal(i): print(i)