SORU
21 EYLÜL 2008, Pazar


Algoritma verilen bir sayıyı bölenlerine sayısını hesaplamak için

Verilen bir sayıyı bölenlerine sayısını hesaplamak için en uygun algoritma (performans-bilge) ne olurdu?

Eğer yalancı ya da bazı örnek için bir link verebilirsen harika olur.

Tüm cevaplar çok yardımcı oldunuz, teşekkür ederim. EDİT: Atkin tüm imkanları devreye sokuyorum ve bir şeyler Jonathan Leffler belirtilen benzer kullanacağım o zaman. Link Justin Bozonier tarafından yayınlanan istediğim şeyler hakkında daha fazla bilgi vardır.

CEVAP
21 EYLÜL 2008, Pazar


Dmitriy Atkin tüm imkanları prime listesini oluşturmak için isteyeceksiniz evet, ama bu bütün sorunu halleder inanmıyorum. Bir bölen olarak nasıl hareket görmek gerekir asal bir listesi var şimdi (ve ne sıklıkta).

Here's some python for the algoLook here ve arama "Konu: matematik - bölenlerine algoritma lazım". Sadece listedeki öğelerin sayısını saymak yerine, ancak onları geri dönen.

5 ** ne olduğunu açıklar matematiksel olarak yapmanız gerekiyor.

Aslında eğer numaranız n ise aşağı kaynar:
n = a^x * b^y * c^z
(a, b, c, ve c n asal bölenlerine ve x, y ve z bölen tekrarlanma sayısı). sonra bölenlerine için toplam sayısı:
(x 1) * (y 1) * (z 1).

Edit: a,b,c,vb doğru bu. anlamakta zorlanıyorum eğer açgözlü bir algo tutarları ne yapmak istersiniz bulmak için BTW, Başka bir çarpma numarası n aşacak kadar büyük asal bölen ile başlar ve kendisi ile çarpın. Sonraki en düşük faktör ve saatler geçmek anki Başbakan ile çarpılır ve gelecek n... vb aşacak kadar Başbakan tarafından çoğalarak devam kez önceki Başbakan ^ numara. Sen bölenlerine birlikte çarpma ve formül içine bu numaraları yukarıda uygulamak sayısını takip edin.

Eğer o değil ise bile 100% algo benim açıklama hakkında emin değilim ama ona benzer bir şey .

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Bogdan Gabriel

    Bogdan Gabri

    5 Aralık 2006
  • o0oCyrusViruso0o

    o0oCyrusViru

    11 Mart 2008
  • TechXCentral

    TechXCentral

    12 Temmuz 2011