24СʱÈÈÃŰæ¿éÅÅÐаñ    

²é¿´: 2565  |  »Ø¸´: 16
±¾Ìû²úÉú 4 ¸ö ³ÌÐòÇ¿Ìû £¬µã»÷ÕâÀï½øÐв鿴
µ±Ç°Ö»ÏÔʾÂú×ãÖ¸¶¨Ìõ¼þµÄ»ØÌû£¬µã»÷ÕâÀï²é¿´±¾»°ÌâµÄËùÓлØÌû

holmescn

½ð³æ (ÕýʽдÊÖ)

[½»Á÷] Euler ¹¤³Ì µÚØ¥ÈýÌ⣺ ÒÑÓÐ5È˲ÎÓë

ÍêÃÀÊýÊÇÖ¸Ò»¸öÊýµÄËùÓÐÒò×ӵĺͻ¹ÊÇÕâ¸öÊý¡£±ÈÈç28£½1+2+4+7+14.
Èç¹ûËùÓÐÒò×ӵĺÍСÓÚÕâ¸öÊý£¬¾Í³ÆËüΪ¡°Æ¶Êý¡±¡£·´Ö®£¬Èç¹ûËùÓÐÒò×ӵĺʹóÓÚÕâ¸öÊý£¬Ôò³ÆÖ®Îª¡°¸»Êý¡±¡£

±ÈÈç12ÊÇ×îСµÄ¡°¸»Êý¡±£¬ÒòΪ 1+2+3+4+6=16>12. ×îСµÄ¿ÉÒÔдΪÁ½¸ö¡°¸»Êý¡±µÄºÍµÄÊýÊÇ24. ÓÉÊýѧ·ÖÎö¿ÉÖª£¬ÈκδóÓÚ28123µÄÕûÊý¶¼¿ÉÒÔд³ÉÒ»¸öÁ½¸ö¡°¸»Êý¡±µÄºÍ¡£µ«ÊÇ£¬Õâ¸öÉÏÏÞ²»ÄܼÌÐøËõСÁË£¬ÏÔÈ»ÒѾ­ÖªµÀ×î´óµÄ²»ÄÜд³ÉÁ½¸ö¡°¸»Êý¡±µÄºÍµÄÊýÒª±ÈÕâ¸öÊýС¡£

ÄÇô£¬ËùÓв»ÄÜд³ÉÁ½¸ö¡°¸»Êý¡±µÄºÍµÄÕýÕûÊýµÄºÍÊǶàÉÙÄØ£¿

[ Last edited by holmescn on 2011-6-5 at 23:34 ]
»Ø¸´´ËÂ¥
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

holmescn

½ð³æ (ÕýʽдÊÖ)

¡ï ¡ï ¡ï ¡ï ¡ï
dubo(½ð±Ò+1): ¶àл½»Á÷ 2011-06-06 14:43:28
΢³¾¡¢ÃÎÏë(½ð±Ò+4): 2011-06-06 20:17:53
Óöþ·Ö²éÕÒ´úÌæÁËÏßÐÔ²éÕÒ£¬Ð§ÂÊÌá¸ßÁ˺ܶࡣÕâ¸ö°æ±¾´ó¸ÅÓÃʱ30Ãë
CODE:
# -*- coding: utf-8 -*-

from math import sqrt
from timeit import timeit

def abundantGen():
    "Éú³ÉÒ»¸ö¸»ÊýÁбí"
    abundant = []
    n = 12

    while n < 28123:
        factors = [1]
        sqrtn = int(sqrt(n))
        for i in range(2,sqrtn+1):
            if n % i == 0:
                factors.append(i)
                if n / i != i:
                    factors.append(n/i)

        if sum(factors) > n:
            abundant.append(n)
        n += 1

    return abundant

def find(self, num):
    first = 0
    end = len(self) - 1
    mid = 0

    if len(self) == 0:
        return False

    while first < end:
        if self[mid] == num:
            return True
        mid = (end + first)/2
        if num > self[mid]:
            first = mid + 1
        elif num < self[mid]:
            end = mid - 1

    if first == end and self[first] == num:
        return True
    return False

def euler23():
    # Ò»¸ö¡°¸»Êý¡±Áбí
    abundant = abundantGen()
    n = 1
    s = 0

    while n < 28123:
        flag = True
        for i in abundant:
            if i > n: break
            # Èç¹ûn-iÔÚÁбíÄÚ£¬ÄÇôn¾Í¿ÉÒÔ·Ö³ÉÁ½¸ö
            # ¡°¸»Êý¡±µÄºÍ
            if find(abundant, n-i):
                flag = False
                break

        if flag:
            s += n

        n += 1

    print s

if __name__ == "__main__":
    print timeit("euler23.euler23()", "import euler23", number=3) / 3

[ Last edited by holmescn on 2011-6-6 at 13:23 ]
7Â¥2011-06-06 13:07:23
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
²é¿´È«²¿ 17 ¸ö»Ø´ð

holmescn

½ð³æ (ÕýʽдÊÖ)

¡ï
dubo(½ð±Ò+1): ¶àл½»Á÷ 2011-06-06 14:41:22
΢³¾¡¢ÃÎÏë(³ÌÐòÇ¿Ìû+1): ¹ÄÀø¶à½»Á÷£¡ 2011-06-06 20:16:22
Ð޸İæ1
CODE:
# -*- coding: utf-8 -*-

from math import sqrt
from timeit import timeit

def abundantGen():
    "Éú³ÉÒ»¸ö¸»ÊýÁбí"
    abundant = []
    n = 12

    while n < 28123:
        factors = [1]
        sqrtn = int(sqrt(n))
        for i in range(2,sqrtn+1):
            if n % i == 0:
                factors.append(i)
                if n / i != i:
                    factors.append(n/i)

        if sqrtn*sqrtn == n:
            factors.remove(sqrtn)

        if sum(factors) > n:
            abundant.append(n)
        n += 1

    return abundant

def euler23():
    # Ò»¸ö¡°¸»Êý¡±Áбí
    abundant = abundantGen()
    n = 1
    s = 0

    while n < 28123:
        flag = False
        for i in abundant:
            if i > n: break
            try:
                # Èç¹ûn-iÔÚÁбíÄÚ£¬ÄÇôn¾Í¿ÉÒÔ·Ö³ÉÁ½¸ö
                # ¡°¸»Êý¡±µÄºÍ
                abundant.index(n-i)
                flag = True
                break
            except:
                continue

        if flag == 0:
            s += n

        n += 1

    print s

if __name__ == "__main__":
    print timeit("euler23.euler23()", "import euler23", number=3)

ÐÞ¸ÄÒԺ󣬽á¹ûºÃÏñÕý³£ÁË£¬µ«Ê±¼äÌ«³¤ÁË¡£
ÒýÓûØÌû:
result = 4179871
takes 1098.32 s

[ Last edited by holmescn on 2011-6-6 at 11:11 ]
2Â¥2011-06-05 23:40:25
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

libralibra

ÖÁ×ðľ³æ (ÖøÃûдÊÖ)

æôÆï½«¾ü

¡ï ¡ï ¡ï ¡ï
Сľ³æ(½ð±Ò+0.5):¸ø¸öºì°ü£¬Ð»Ð»»ØÌû
jjdg(½ð±Ò+2): ÐÁ¿àÁË 2011-06-06 03:24:33
jjdg(½ð±Ò+1): ¶ËÎç½Ú¿ìÀÖ 2011-06-06 03:24:40
΢³¾¡¢ÃÎÏë(³ÌÐòÇ¿Ìû+1): ¹ÄÀø¶à½»Á÷£¡ 2011-06-06 20:16:48
ÄãÄǸö¸»ÊýÁбíÉú³ÉÅжÏÓÐÎÊÌâ,²»ÄÜÅжϵ½sqrt(n),±ØÐë´Ó1-n-1
ÀýÈçint(sqrt(12))==3,µ«ÊÇ4Ò²Õû³ý12;int(sqrt(28))==5,µ«ÊÇ14Ò²Õû³ý28

Õâ¸öÓÃmatlabËÙ¶ÈÌ«ÂýÁË,¸ÄcÁË
CODE:
#include
#include

// compute the sum of all factors
int d(int n)
{
        int s=0;
        int i;
        for(i=2;i                 if(n%i==0)
                        s += i;
       
        return s+1; // ¼ÓÉÏ1
}

// euler23
int main(int args, char* argv[])
{
        int i, j, sum = 0;
        bool flag = false;
        for(i=1;i<28123;i++)
        {
                flag = false;
                for(j=1;j                 {
                        if(j<(i-j)) // j+(i-j)==i,Ö»ÅжÏÒ»´Î
            {
                if(d(j)>j && d(i-j)>(i-j)) // Èç¹ûjºÍi-j¶¼ÊÇabundant number,¸Ä±äflag½áÊø±¾´ÎÑ­»·
                {
                    flag = true;
                    break;
                }
            }               
                }

                if(!flag) // ²»ÄܱíʾΪ2¸öabundant numberÖ®ºÍ
                {
                        sum += i;
                        printf("%d added.\n",i); // ÒÔΪËÀ»úÁË,¼ÓÕâ¾ä¿´Êä³öµÄ
                }
        }
       
        printf("\nResult: %d\n",sum); // ´òÓ¡½á¹û

        system("PAUSE");
        return 0;
}

½á¹û
CODE:
4179871

[ Last edited by libralibra on 2011-6-6 at 01:47 ]
matlab/VB/python/c++/Javaд³ÌÐòÇë·¢QQÓʼþ:790404545@qq.com
3Â¥2011-06-06 01:43:30
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

holmescn

½ð³æ (ÕýʽдÊÖ)

¡ï
dubo(½ð±Ò+1): ¶àл½»Á÷ 2011-06-06 14:44:16
ÒýÓûØÌû:
Originally posted by libralibra at 2011-06-06 01:43:30:
ÄãÄǸö¸»ÊýÁбíÉú³ÉÅжÏÓÐÎÊÌâ,²»ÄÜÅжϵ½sqrt(n),±ØÐë´Ó1-n-1
ÀýÈçint(sqrt(12))==3,µ«ÊÇ4Ò²Õû³ý12;int(sqrt(28))==5,µ«ÊÇ14Ò²Õû³ý28

Õâ¸öÓÃmatlabËÙ¶ÈÌ«ÂýÁË,¸ÄcÁË
[code] #include <stdio.h>
#inc ...

ÎÒÖªµÀÄãµÄÒâ˼°¡£¬µ«ÎÒÓÐÁ½¸öappendµÄ°¡¡£Ò²¾ÍÊÇ˵

sqrt(12)=3

i È¡ÁË 1 2 3
ͬʱ
n/i È¡ÁË 12 6 4

ÔΣ¬ÎÒ˵ÎҵĺÍÕâÃ´Ð¡ÄØ, Ô­À´ÎÒÈ¡ÁË12ÁË
4Â¥2011-06-06 08:43:16
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[»ù½ðÉêÇë] 2026Äê8ÔÂ25ÈÕ¹ú×ÔÈ»·Å°ñǰͻȻÊÕµ½ÁÐÈëÆÀÉóר¼ÒÓʼþ£¬ÓйØÏµÂ𣿠+17 ľˮ˼¶¹ 2026-08-25 20/1000 2026-08-26 01:26 by chengyan1220
[»ù½ðÉêÇë] ½ñÌìÎñί»á¿ªÍêÁË£¬Ã÷Ìì³ö½á¹ûÂð +18 angus9576 2026-08-25 22/1100 2026-08-26 00:41 by merchancy
[¿¼ÑÐ] ÊÛSCIÒ»ÇøT0PÎÄÕ£¬ÎÒ:8.O.55.1.O.5.4,¿ÆÄ¿È«,¿É+¼± +3 7K1CJE38xLG4 2026-08-25 3/150 2026-08-25 23:20 by cNXvBfCpiZOM
[»ù½ðÉêÇë] Ã÷ÌìÓ¦¸Ã¿É²éÁË£¡£¿ +6 chengyan1220 2026-08-23 6/300 2026-08-25 19:45 by zfd97
[»ù½ðÉêÇë] 2026¹ú×ÔÈ»º¯ÆÀ·Ñµ½ÕË +20 ÑòÑü°å 2026-08-21 23/1150 2026-08-25 16:34 by zsna
[»ù½ðÉêÇë] ½ñÈÕ²»·Å°ñ£¿Íø´«¹ú×ÔȻԤ¼Æ 8 Ô 27 Èտɲé½á¹û +17 ҽѧÀÏÄк¢ 2026-08-20 22/1100 2026-08-25 15:36 by ҽѧÀÏÄк¢
[»ù½ðÉêÇë] Èç¹û´Ë¿ÌÄãÕýÔÚΪ¹ú»ù¸Ðµ½½¹ÂÇ£¬²»·ÁÀ´ÌýÌýÕâÊס¶»ù½ðÖ®Íâ¡· +8 scalable 2026-08-24 8/400 2026-08-25 12:52 by jnhyjjm
[»ù½ðÉêÇë] ÈËÆø²»ÐÐÁË +11 fansofjerry 2026-08-21 11/550 2026-08-25 11:04 by ¹Â¶ÀµÄÓ¢ÐÛ6
[½Ìʦ֮¼Ò] µ¼Ê¦Í²ۣºÎÒÔõô̯ÉÏÁËÕâô¸ö¼«Æ·Ñо¿Éú£¡ +3 ËÕ¶«ÆÂ¶þÊÀ 2026-08-23 3/150 2026-08-25 10:35 by shisan1313
[»ù½ðÉêÇë] 2026ÄêµÄ¹ú¼ÒÉç¿Æ»ù½ðÏîĿͨѶÆÀÉóµÄйæÔòÓëж¯Ïò¡¢ÐÂÌôÕ½ +5 process2012 2026-08-23 7/350 2026-08-25 09:42 by huixian257
[»ù½ðÉêÇë] ½ñÌì»ù½ð»á³ö½á¹ûÂð£¿20260819 +17 kkkl_v 2026-08-19 18/900 2026-08-25 09:41 by windflowerwy
[»ù½ðÉêÇë] ÎÒÃæÉÏÍêµ°ÁË +13 ÇÒÌý»¢Ð¥ 2026-08-20 14/700 2026-08-25 09:10 by mrkang
[»ù½ðÉêÇë] filecode£¬4¸öjtjcÁË +14 ziyangfang 2026-08-19 17/850 2026-08-24 18:37 by ¹þ¹þ¸ò£¿
[»ù½ðÉêÇë] ¿ÆÑй¶ùÌ«ÄÑÁË +18 ÎÒ4´ó°×²Ë 2026-08-20 19/950 2026-08-24 09:47 by ¿­¶÷¹ãÊ¢´ß»¯·ÖÎ
[½Ìʦ֮¼Ò] Ìø²ÛºóÔÚÑÐÏîÄ¿Ôõô°ì£¿ +5 ¼òµ¥»¯xn 2026-08-22 10/500 2026-08-23 12:38 by ¼òµ¥»¯xn
[»ù½ðÉêÇë] ½ñÌì·Å°ñÂ𣿠+15 ²¼²¼ºÍÒ»¶þ 2026-08-19 16/800 2026-08-23 09:55 by ÕÅ´ºÉú
[»ù½ðÉêÇë] ʱ¼ä´Á½ñÌ죬20ºÅ±äÁË +5 archvillain 2026-08-20 5/250 2026-08-22 06:12 by hui_daxiao
[»ù½ðÉêÇë] ¿´À´½ñÌì²»»á·Å°ñÁË£¿ +8 chengyan1220 2026-08-21 11/550 2026-08-21 17:52 by dcqxinyang
[»ù½ðÉêÇë] Ó¦¸ÃÊÇÏÂÖÜÈý26ÈÕ¹«²¼Á˰ɣ¿ +4 ¹þ¹þ¸ò£¿ 2026-08-21 4/200 2026-08-21 10:58 by Vivilian
[»ù½ðÉêÇë] »ù½ð°¡»ù½ð +4 longfie172 2026-08-20 4/200 2026-08-21 08:58 by mark mao
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û