İçeriğe geç

Python ile Project Euler Soru 3 Çözümü

Soru:
The prime factors of 13195 are 5, 7, 13 and 29.
What is the largest prime factor of the number 600851475143 ?
————————–
13195 sayısının asal çarpanları 5,7,13 ve 29.
O zaman 600851475143 sayısının en büyük asal çarpanı nedir?

import math
import time

def enBuyukAsalBoleniBul(sayi):
    baslangic_zamani = time.time()
    enBuyukAsalBolen = 1
    if sayi%2 == 0:
        enBuyukAsalBolen = 2

    while sayi % 2 == 0: # Sayı 2 ye bölünebildiği sürece 2 ye böl.
        sayi /= 2

    for i in range(3, int(math.sqrt(sayi)) + 1, 2):
        while sayi % i == 0:
            enBuyukAsalBolen = i
            sayi = sayi / i

    if sayi > 2:
        enBuyukAsalBolen = sayi
    gece_sure = time.time() - baslangic_zamani
    return int(enBuyukAsalBolen), gece_sure

sonuc, gecen_sure = enBuyukAsalBoleniBul(600851475143)
print("600851475143 sayısının en büyük asal böleni :", sonuc)
print("İşlem için geçen süre :", gecen_sure)
2.794 Gösterim  
Tarih:algoritmalar ve programlamaya girişprogramlamaProject EulerPython

İlk Yorumu Siz Yapın

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.

This site uses Akismet to reduce spam. Learn how your comment data is processed.