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

holmescn

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

[½»Á÷] Euler ¹¤³Ì µÚÊ®Ì⣺¼ÆËãСÓÚ2°ÙÍòµÄËùÓÐÖÊÊýµÄºÍ ÒÑÓÐ3È˲ÎÓë

The sum of the primes below 10 is 2 + 3 + 5 + 7 = 17.

Find the sum of all the primes below two million.

СÓÚ10µÄËùÓÐÖÊÊýµÄºÍΪ£º2+3+5+7 = 17

ÄÇôСÓÚ2°ÙÍòµÄËùÓÐÖÊÊýµÄºÍÊǶàÉÙ£¿


PS£º×î½üµÄ¹ØÓÚÖÊÊýµÄÎÊÌâ»¹ÕæÊǶడ£¬¹þ¹þ¡£
PS2£ºµ½µÚ10ÌâÁË£¬Õâ¸öÌâµÄ½â³öÂÊÒѾ­ÊǵÚÒ»ÌâµÄÒ»°ë»¹²»µ½ÁË¡£
»Ø¸´´ËÂ¥

» ²ÂÄãϲ»¶

» ±¾Ö÷ÌâÏà¹Ø¼ÛÖµÌùÍÆ¼ö£¬¶ÔÄúͬÑùÓаïÖú:

ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

libralibra

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

æôÆï½«¾ü

¡ï ¡ï ¡ï ¡ï
Сľ³æ(½ð±Ò+0.5):¸ø¸öºì°ü£¬Ð»Ð»»ØÌû
ÓàÔó³É(½ð±Ò+3): лл²ÎÓë½»Á÷£¡ 2011-05-15 19:21:33
»¹ÊÇÀÏ¹æ¾Ø,ÏÈÀ´¸ö͵ÀÁµÄ½â·¨
CODE:
function result = euler10()
tic;
result = sum(primes(2000000));
toc;
end

½á¹û+ÔËÐÐʱ¼ä
CODE:
% Elapsed time is 0.087248 seconds.
% ans =
%               142913828922

matlab/VB/python/c++/Javaд³ÌÐòÇë·¢QQÓʼþ:790404545@qq.com
3Â¥2011-05-15 14:56:17
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
²é¿´È«²¿ 7 ¸ö»Ø´ð

huycwork

½ð³æ (ÖøÃûдÊÖ)

¡ï ¡ï
Сľ³æ(½ð±Ò+0.5):¸ø¸öºì°ü£¬Ð»Ð»»ØÌû
ÓàÔó³É(½ð±Ò+1): лл²ÎÓëÌÖÂÛ£¡ 2011-05-15 19:21:06
Ö»ÊÇÕâЩÖÊÊýÎÊÌ⣬²àÖØµã¸÷Óв»Í¬£¬µÚÈýÌâÒªÇóÕÒ³ö×î´óÖÊÊý£¬µÚÆßÌâÒªÇó½â³öµÚ10001¸öÖÊÊý£¬¶øÕâÒ»Ìâ¸ù±¾²»ÒªÇó²âÊÔ³öËùÓÐÖÊÊý£¬Ö»ÊÇÇóºÍ¶øÒÑ£¬½â·¨Ó¦¸ÃÒ²ÓÐÌØÊâÖ®´¦¡£
äöÎеÄÖÐÐÄÓÐÒ»¿é¿ÕµØ£¬¿Õ¿ÕµÄ¡£
2Â¥2011-05-15 08:44:32
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

huycwork

½ð³æ (ÖøÃûдÊÖ)

¡ï ¡ï ¡ï ¡ï
Сľ³æ(½ð±Ò+0.5):¸ø¸öºì°ü£¬Ð»Ð»»ØÌû
ÓàÔó³É(½ð±Ò+3, ³ÌÐòÇ¿Ìû+1): лл²ÎÓë½»Á÷£¡ 2011-05-15 19:21:47
ÎÒÏÈǰ˵µÄËØÊýËã·¨µÄʵÏÖ£¬Å¼Êý²¿·ÖûÓÐÓÅ»¯£¬Ð§ÂÊ¿´ÆðÀ´»¹Ëã²»´í~µÚÆßÌⶼûÈ˹ÜÁË£¬¾Í·¢Õâ°É£º
CODE:
#include
#include

using namespace std;

enum {
        BUFSZ = 10000,//Õâ¸öÏÞÖÆ²úÉúÐÔÄÜÆ¿¾±£¬ÉèÖÃÔ½´ó£¬ÐÔÄܾÍÔ½ºÃ
        NPRI = 10001    //Õâ¸öÊý¾Ý¾ÍÐèÒª¹À¼ÆÁË£¬²»Ïë¹À¼Æ£¬¾ÍÖ±½Óvector°É:)
};

bool buf[BUFSZ];
size_t primer[NPRI];

size_t eular7(size_t nprimer = 10001){
        size_t offset = 0, *prip, *cprip;
        int top;//¼ÇÂ¼ËØÊýÊý
        int falc;//ÅųýµÄÊý
        bool *bufp;
        primer[0] = 2;//¸ºÔðżÊý²¿·Ö
        primer[1] = 3;
        primer[2] = 5;
        top = 3;
        //Èç¹û´Ó1¿ªÊ¼»á°ÑËùÓеÄÊý¶¼falseÁË£¬offset±ØÐë±È1Òª´ó
        offset += 5;
        while(1){
                for(size_t i = 0; i < BUFSZ; ++i)
                        buf[i] = true;
                falc = 0;
                prip = primer;
                cprip = primer + top;
                bufp = buf;
NEWPRI:   //ÿµ±ÓÐеÄËØÊý¾ÍÌø»ØÀ´
                //¼ì²éÿ¸öÒÑÖªµÄËØÊý£¬Õⲿ·Ö¿ÉÄÜÓÐbug£¬²âÊÔµÄʱºò¸Ð¾õÓеãÎÊÌâ
                while(prip - primer < top){
                        size_t mod = offset%(*prip);
                        if(mod == 0){
                                buf[0] = false;
                                ++falc;
                        }
                        for(size_t i = *prip - mod; i < BUFSZ; i+=*prip){
                                if(buf[i])
                                        ++falc;
                                buf[i] = false;
                        }
                        ++prip;//Õâ¸öÖ¸Õë±£Ö¤£¬²»»áÖØ¸´±éÀúËØÊý±í
                }
                //Ìí¼Óδ֪µÄËØÊý£¬Ã¿´ÎÖ»Ìí¼ÓÒ»¸ö
                for(int i = bufp - buf; i < BUFSZ; ++i){
                        if(buf[i]){
                                primer[top++] = offset + i;
                                if(top == nprimer)
                                        goto DONE;
                                bufp = buf+i;//Õâ¸öÖ¸Õë±£Ö¤£¬²»»áÖØ¸´¼ì²é»º³åÊý±í
                                if(falc + prip - cprip < BUFSZ)
                                        goto NEWPRI;
                        }
                }
                offset += BUFSZ;
        }
DONE:
        return primer[nprimer-1];
}

int main(){
        time_t t1, t2;
        t1 = time(0);
        size_t res = eular7();
        t2 = time(0);
        cout<<"result:"<         cout<<"cost:"<         return 0;
}

Èç¹ûÒªÊÊÓ¦ÕâÌ⣬ÐÞ¸ÄÖÕÖ¹Ìõ¼þ¼´¿É¡£
äöÎеÄÖÐÐÄÓÐÒ»¿é¿ÕµØ£¬¿Õ¿ÕµÄ¡£
4Â¥2011-05-15 15:45:50
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

holmescn

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

¡ï ¡ï
ÓàÔó³É(½ð±Ò+2, ³ÌÐòÇ¿Ìû+1): лл²ÎÓë½»Á÷£¡ 2011-05-18 17:05:42
¿´ÁËhuycworkµÄ´úÂ룬¸Ð¾õ²»Ì«ºÃ£¬ÓÃÁËgotoµÄ»°£¬¾Íbad smellÁË¡£ÎÒдÁËÒ»¸öûÓÐgotoµÄ°æ±¾²»¹ý£¬¿ÉÄÜÓеط½»áÖØµþ£¬Ôì³ÉËÙ¶ÈÂý¡£
CODE:
#include
#include
#include

#define PRIMESZ 100002
#define BUFSZ 10000

int nthPrime(int nth) {
    // ×ܹ²µÄÖÊÊý¼¯
    int primes[PRIMESZ];
    // ÿ´Î¹ýÂËÓõÄbuffer
    int buf[BUFSZ];
    // ÒÑÖªµÄÖÊÊý¸öÊý
    int amountOfPrimes;
    // ¼Ç¼bufferµÄµÚÒ»¸öÊý
    // ×îºóÒ»¸öÊýÒÔ¼°ÏÂÒ»¸ö
    // Êǵ±Ç°ÖÊÊýµÄ±¶ÊýµÄÊý
    int next, first, last;
    int i, j;

    // ÏȸøÁ½¸öÖÊÊý
    primes[0] = 2;
    primes[1] = 3;
    amountOfPrimes = 2;
    last = 3;

    while (amountOfPrimes < nth) {
        // Ìî³äbuffer, ²»ÒªÅ¼Êý
        // ÕâÀï´Ó×î´óÖÊÊý¿ªÊ¼£¬Ñ¡BUFSZ¸öÊý
        // ¿ÉÄÜÓÐЩÊý»á±»Öظ´²éÕÒ
        // µ«¿ÉÒÔ·Àֹ©µôÊý
        for(i = 0; i < BUFSZ; i++) {
            buf[i] = primes[amountOfPrimes - 1] + i*2;
        }

        // ±£´æµÚÒ»¸öÊýºÍ×îºóÒ»¸öÊý£¬ÒòΪ¿ÉÄܱ»ÐÞ¸Ä
        first = buf[0];
        last  = buf[BUFSZ-1];

        for(i = 1; i < amountOfPrimes; i++) {
            // ÏÂÒ»¸ö´óÓÚfirstµ«ÊÇprimes[i]µÄ±¶ÊýµÄÊý
            next = ceil(first * 1.0 / primes[i]);
            // ·ÀÖ¹µÃµ½Å¼Êý
            if (next % 2 == 0) next += 1;

            // ¹ýÂ˵ôprimes[i]µÄ±¶Êý
            // ÕâÀïÎÒÏëÁ˺ܾÃ......
            // Ö÷ÒªÊÇÄÔ×Ó²»¹»ÓÃ
            for(j = next * primes[i]; j <= last; j += primes[i]*2) {
                buf[(j - first)/2] = 0;
            }
        }

        // °Ñ¹ýÂËÍêÁ˵ÄÖÊÊý¼Óµ½primesÀï
        // ²»ÄܼӵÃÌ«¶à£¬ÒòΪ¿ÉÄÜÓÐЩÖÊÊý»¹Ã»ÓÐÔÚprimesÀï
        // ÕâЩÖÊÊýµÄ±¶Êý¿ÉÄܻᱻ¼Ó½øÀ´
        for(j = 0; j < (BUFSZ < amountOfPrimes?BUFSZ:amountOfPrimes); j++) {
            if(buf[j]) {
                primes[amountOfPrimes++] = buf[j];
            }
            // ¹»ÊýÁ˾ͱðÔÙ¼ÓÁË
            if(amountOfPrimes > PRIMESZ)
                break;
        }
    }

    return primes[nth-1];
}

int main(int argc, char** argv){
    time_t t;
    t = time(0);
    printf("nthPrimes = %d\n", nthPrime(100001));
    printf("%d\n", time(0)-t);
    return 0;
}

5Â¥2011-05-18 14:35:44
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] 085700×ÊÔ´Óë»·¾³308Çóµ÷¼Á +10 īīĮ 2026-03-18 10/500 2026-03-20 10:35 by Î޼ʵIJÝÔ­
[¿¼ÑÐ] 304Çóµ÷¼Á +5 ÂüÊâ2266 2026-03-18 5/250 2026-03-20 09:00 by ZHANG0tao
[¿¼ÑÐ] 294Çóµ÷¼Á²ÄÁÏÓ뻯¹¤×¨Ë¶ +14 ݤÎÉ­ÁÖ 2026-03-18 14/700 2026-03-19 22:38 by ѧԱ8dgXkO
[¿¼ÑÐ] ÉúÎïѧµ÷¼ÁÕÐÈË£¡£¡£¡ +3 ɽº£Ììá° 2026-03-17 4/200 2026-03-19 21:34 by ÔõôÊÍ»³
[¿¼ÑÐ] 328Çóµ÷¼Á£¬Ó¢ÓïÁù¼¶551£¬ÓпÆÑо­Àú +3 ÉúÎ﹤³Ìµ÷¼Á 2026-03-17 7/350 2026-03-18 20:41 by Wangjingyue
[¿¼ÑÐ] 0854¿É¿çµ÷¼Á£¬Ò»×÷Ò»ÏîºËÐÄÂÛÎÄÎåÏîרÀû£¬Ê¡¡¢¹ú¼¶Ö¤Êé40+ÊýÒ»Ó¢Ò»287 +8 СÀî0854 2026-03-16 8/400 2026-03-18 14:35 by ²«»÷518
[¿¼ÑÐ] 0703»¯Ñ§336·ÖÇóµ÷¼Á +6 zbzihdhd 2026-03-15 7/350 2026-03-18 09:53 by zhukairuo
[»ù½ðÉêÇë] ±»ÎÒÑÔÖУºÐÂÄ£°å²»Ç¿µ÷¸ñʽÁË£¬¼Ùר¼Ò¿ªÊ¼¹Ü¸ñʽÁË +4 beefly 2026-03-14 4/200 2026-03-17 22:04 by »ÆÄñÓÚ·ÉChao
[¿¼ÑÐ] 308Çóµ÷¼Á +4 ÊÇLupa°¡ 2026-03-16 4/200 2026-03-17 17:12 by ruiyingmiao
[¿¼ÑÐ] ²ÄÁÏר˶326Çóµ÷¼Á +6 Ä«ìÏæ¦Ý· 2026-03-15 7/350 2026-03-17 17:10 by ruiyingmiao
[¿¼ÑÐ] ÓÐûÓеÀÌú/ÍÁľµÄÏëµ÷¼ÁÄÏÁÖ£¬¸ø×Ô¼ºÕÐʦµÜÖС« +3 TqlXswl 2026-03-16 7/350 2026-03-17 15:23 by TqlXswl
[¿¼ÑÐ] ¿¼Ñе÷¼Á +3 ä¿ya_~ 2026-03-17 5/250 2026-03-17 09:25 by Winj1e
[¿¼ÑÐ] 283Çóµ÷¼Á +3 Ìý·ç¾ÍÊÇÓꣻ 2026-03-16 3/150 2026-03-17 07:41 by ÈÈÇéɳĮ
[¿¼ÑÐ] 11408 Ò»Ö¾Ô¸Î÷µç£¬277·ÖÇóµ÷¼Á +3 zhouzhen654 2026-03-16 3/150 2026-03-17 07:03 by laoshidan
[¿¼ÑÐ] 326Çóµ÷¼Á +4 ŵ±´¶û»¯Ñ§½±êéê 2026-03-15 7/350 2026-03-16 17:11 by ŵ±´¶û»¯Ñ§½±êéê
[¿¼ÑÐ] 277²ÄÁÏ¿ÆÑ§Ó빤³Ì080500Çóµ÷¼Á +3 ×ÔÓɼå±ý¹û×Ó 2026-03-16 3/150 2026-03-16 14:10 by ÔËÆøyunqi
[¿¼ÑÐ] Öпƴó²ÄÁÏר˶319Çóµ÷¼Á +3 ÃÏöβÄÁÏ 2026-03-13 3/150 2026-03-14 18:10 by houyaoxu
[¿¼ÑÐ] Ò»Ö¾Ô¸¹þ¹¤´ó²ÄÁÏ324·ÖÇóµ÷¼Á +5 ãÆÐñ¶« 2026-03-14 5/250 2026-03-14 14:53 by ľ¹Ï¸à
[¿¼ÑÐ] 330Çóµ÷¼Á +3 ?½´¸øµ÷¼Á¹òÁË 2026-03-13 3/150 2026-03-14 10:13 by JourneyLucky
[¿¼ÑÐ] ÕÐÊÕ0805£¨²ÄÁÏ£©µ÷¼Á +3 18595523086 2026-03-13 3/150 2026-03-14 00:33 by 123%¡¢
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û