Bir sayının en büyük asal çarpanını bulan bir program yazalım.
import math
# En büyük asal çarpan fonksiyonu
def maxPrimeFactors (n):
# En düşük değişken
maxPrime = -1
# Çift sayılar
while n % 2 == 0:
maxPrime = 2
n >>= 1 # n /= 2 eşdeğer
# şimdi çift sayıları atlayıp tek sayıları alalım
for i in range(3, int(math.sqrt(n)) + 1, 2):
while n % i == 0:
maxPrime = i
n = n / i
# 2den büyük ise maxPrime eşitleyelim
if n > 2:
maxPrime = n
return int(maxPrime)
# Test edelim
n = 15
print(maxPrimeFactors(n))
n = 25698751364526
print(maxPrimeFactors(n))
Python dersleri için buraya gidebilirsiniz..
merhaba benim bir problemim var 1 den buyuk pozitif bir tamsayinin asal carpanlarini bulmam gerekiyor. ve bu asal carpanlari kucukten buyuge siralamam gerekiyor. programin normal halini yazabilsemde bunun rekursif bir fonksiyon olarak nasil yazacagim bir turlu yapamiyorum. yardimci olabilirmisiniz.
Yazdığınız kodu mail yoluyla iletin, birlikte recursive fonksiyon haline çevirelim.