Arama butonu
Bu konudaki kullanıcılar: 1 misafir
4
Cevap
586
Tıklama
0
Öne Çıkarma
Asal Çarpanları Bulma
M
8 yıl
Çavuş
Konu Sahibi


n = 1336

for i in range(2,n):
if n % i != 0:
i+=1
if n % i == 0:
n = n/i
print(i)



Merhaba, kod burada, çalıştırdığınızda siz de hatayı fark edeceksiniz, nasıl bu durumun önüne geçebilirim?

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



R
8 yıl
Yüzbaşı

pythonu bilmediğim için biraz zorlandım syntaxta.
yukarıdaki kodda i+=1 işlevsiz. çünkü range kullanıldığında i sıradan sayıları alıyor ve değiştirilemiyor.
Bunun yerine while döngüsü tercih edilebilir. Senin kodundaki mantıkla bölüm gerçekleşip ekrana yazdırdıktan sonra i değerini en başa sarmak gerekir. yani i = 2.
 
n = 1336
i=2
while i <= n:
if n % i == 0:
n = n/i
print(i)
i=2
else:
i+=1


Bu mesaja 1 cevap geldi.
M
8 yıl
Çavuş
Konu Sahibi

Teşekür ederim. Bunu for döngüsü ile yapmanın yolu nedir? Yani gereksiz olmayacaksa tabii.



< Bu ileti mobil sürüm kullanılarak atıldı >


Bu mesajda bahsedilenler: @rukaplan
R
8 yıl
Yüzbaşı

python syntaxını bilmiyorum. normalde diğer dillerde
for(i=0;i<5;i++)
yazdir(i);

i=0;
while(i<5)
{
yazdir(i);
i++
}

şeklinde kolayca dönüştürülebilir.



T
8 yıl
Yarbay

Sağdaki pencere for döngülü:



< Resime gitmek için tıklayın >



< Bu ileti mini sürüm kullanılarak atıldı >

DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.