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

  • MC JIN'S OLD YouTube CHANNEL

    MC JIN'S OLD

    2 Kasım 2008
  • FD2097

    FD2097

    21 HAZİRAN 2009
  • Missouri Star Quilt Company

    Missouri Sta

    18 ŞUBAT 2009