Znn3bq.jpeg
ÉÇÍ·´óѧº£Ñó¿ÆÑ§½ÓÊܵ÷¼Á
²é¿´: 4201  |  »Ø¸´: 20
±¾Ìû²úÉú 6 ¸ö ³ÌÐòÇ¿Ìû £¬µã»÷ÕâÀï½øÐв鿴
µ±Ç°Ö»ÏÔʾÂú×ãÖ¸¶¨Ìõ¼þµÄ»ØÌû£¬µã»÷ÕâÀï²é¿´±¾»°ÌâµÄËùÓлØÌû

holmescn

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

[½»Á÷] Euler ¹¤³Ì µÚÎåÌ⣺Äܱ»1µ½20ËùÓеÄÊý¶¼Õû³ýµÄ×îСÕýÊý ÒÑÓÐ11È˲ÎÓë

2520 is the smallest number that can be divided by each of the numbers from 1 to 10 without any remainder.

What is the smallest positive number that is evenly divisible by all of the numbers from 1 to 20?

2520ÊÇÒ»¸öÄܱ»1µ½10ÖеÄÿ¸öÊý¶¼³ý¾¡µÄ×îСµÄÊý¡£
ÄÇôÄܱ»1µ½20ËùÓеÄÊýµÄÕû³ýµÄ×îСµÄÕýÊýÊǶàÉÙÄØ£¿
»Ø¸´´ËÂ¥

» ²ÂÄãϲ»¶

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

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

holmescn

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

¡ï ¡ï ¡ï
ÓàÔó³É(½ð±Ò+3): ¹ÄÀøÌÖÂÛ£¡ 2011-05-13 21:14:16
΢³¾¡¢ÃÎÏë(³ÌÐòÇ¿Ìû+1): 2011-05-14 19:29:31
OK,ÌùËã·¨ÁË£¡

±¾ÌâÆäʵÔÚÊýѧÉϺܼòµ¥£¬Äܱ»1µ½20ËùÓеÄÊý¶¼Õû³ýµÄ×îСÕýÊý£¬µ±È»¾ÍÊÇ1µ½20Õâ20¸öÊýµÄ×îС¹«±¶Êý¡£ËùÒÔÓÃ×îС¹«±¶ÊýËã·¨¾Í×î¼òµ¥ÁË¡£¹ØÓÚ×îС¹«±¶ÊýËã·¨£¬Çë×ÔÐп´Êé»ò²éά»ù°Ù¿Æ¡£

Ë㷨˵Ã÷£º
Çó×îС¹«±¶Êý£¬µ±È»¾ÍÊǰÑËùÓкÏÊýµÄÖÊÒò×Ó£¬È¥µô¹«Òò×Ó£¬È»ºóÔÙ³ËÆðÀ´¾ÍOKÁË¡£

ÏÂÃæ¸ø³öÈýÖÖÓïÑÔµÄʵÏÖ£º

Matlab:
CODE:
clear;
tic;
primes  = [2 3 5 7 11 13 17 19];
factors = [];
numbers = 1:20;

for i = 1:length(primes)
    while any(mod(numbers, primes(i)) == 0)
        for j = 1:length(numbers)
            if mod(numbers(j), primes(i)) == 0
                numbers(j) = numbers(j) / primes(i);
            end
        end
        factors = [factors primes(i)];
    end
end

result = 1;
for i = 1:length(factors)
    result = result * factors(i);
end
disp(num2str(result));
toc;

Fortran:
CODE:
Program Euler5
    Implicit None
    Integer, Dimension(8) :: Primes
    Integer, Dimension(100) :: Factors
    Integer, Dimension(20)  :: Numbers
    Integer I, J, N
    Real(8) :: Res

    Primes = (/2, 3, 5, 7, 11, 13, 17, 19/)
    Numbers = (/(I, I=1, 20)/)
    N = 1

    Do I = 1, Size(Primes)
        Do While(Any(Mod(Numbers, Primes(I)) == 0))
            Do J = 1, Size(Numbers)
                If(Mod(Numbers(J), Primes(I)) == 0) Then
                    Numbers(J) = Numbers(J) / Primes(I)
                EndIF
            EndDo
            Factors(N) = Primes(I)
            N = N + 1
        EndDo
    EndDo

    Res = 1.0
    Do I = 1, N - 1
        Print '(I2)', Factors(I)
        Res = Res * Factors(I)
    EndDo

    Print '(F20.0)', Res

EndProgram Euler5

C:
CODE:
#include

int any(int Numbers[], int n, int Prime){
    int i;
    for(i = 0; i < n; i++){
        if(Numbers[i] % Prime == 0)
            return 1;
    }

    return 0;
}

int main(int argc, char** argv){
    int Primes[] = {2, 3, 5, 7, 11, 13, 17, 19};
    int Factors[100];
    int Numbers[20];
    int sizeOfNumbers = sizeof(Numbers)/sizeof(int);
    int sizeOfPrimes  = sizeof(Primes)/sizeof(int);
    int i, j, n = 0;
    double result = 1;

    for(i = 0; i < sizeOfNumbers; i++) Numbers[i] = i + 1;

    for(i = 0; i < sizeOfPrimes; i++) {
        while(any(Numbers, sizeOfNumbers, Primes[i])) {
            for(j = 0; j < sizeOfNumbers; j++){
                if(Numbers[j] % Primes[i] == 0){
                    Numbers[j] /= Primes[i];
                }
            }
            Factors[n++] = Primes[i];
        }

    }

    for(i = 0; i < n; i++){
        result *= Factors[i];
    }
    printf("%18.0f\n", result);

    return 0;
}

µ±È»ÎÒÕâÀï͵¸ö¸öÀÁ£¬¾ÍÊÇÖ±½Ó¸ø³öÁËСÓÚ20µÄÖÊÊý¡£²»¹ý£¬Õâ¸öÖÊÊýÁбíµÄÉú³ÉÒ²²»ÄÑ£¬²Î¿¼Euler ¹¤³Ì µÚÈýÌâµÄËã·¨¡£

Èç¹ûÒª¸ø³öN¸öÊýµÄ×îС¹«±¶Êý¡£Ö»Òª¸ø¸öNumbersµÄÁбí¾Í¿ÉÒÔÁË¡£ÎÒÏëÕâ¸öËã·¨»¹ÊǺÜʵÓõġ£

[ Last edited by holmescn on 2011-5-13 at 12:51 ]
8Â¥2011-05-13 11:31:07
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
²é¿´È«²¿ 21 ¸ö»Ø´ð

libralibra

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

æôÆï½«¾ü

¡ï ¡ï ¡ï ¡ï
Сľ³æ(½ð±Ò+0.5):¸ø¸öºì°ü£¬Ð»Ð»»ØÌû
ÓàÔó³É(½ð±Ò+3): ¹ÄÀø½»Á÷£¡ 2011-05-12 19:11:36
ÓàÔó³É(³ÌÐòÇ¿Ìû+1): 2011-05-12 19:12:13
CODE:
%% evenly divided by 1:20
% Elapsed time is 173.211097 seconds.
% ans =
%    232792560
function result = euler5()
tic;
flag = 0;
result = 2520; % Äܱ»1-20Õû³ý,¿Ï¶¨±ÈÄܱ»1-10Õû³ýµÄ2520´ó
while flag==0
    result = result+10; % Äܱ»10Õû³ý,ËùÒÔÿ´ÎÔö¼Ó10
    flag = ~any(mod(result,2:20)); % ¼ì²â2-20,Èç¹ûÈ«²¿¿ÉÒÔÕû³ý,¸Ä±äflag½áÊøÑ­»·
end
toc;
end

ЧÂÊÓеãµÍ,170¶àÃë°¡,
matlab/VB/python/c++/Javaд³ÌÐòÇë·¢QQÓʼþ:790404545@qq.com
2Â¥2011-05-12 16:36:07
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

holmescn

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

ÒýÓûØÌû:
Originally posted by libralibra at 2011-05-12 16:36:07:
[code] %% evenly divided by 1:20
% Elapsed time is 173.211097 seconds.
% ans =
%    232792560
function result = euler5()
tic;
flag = 0;
result = 2520; % Äܱ»1-20Õû³ý,¿Ï¶¨±ÈÄܱ»1-10Õû³ýµÄ2520 ...

1. Ϊʲô²»ÓÃall£¬ÒªÓÃanyÄØ£¿
2. ÎÊÌâºÜ¼òµ¥°¡£¬Ë㷨̫´Ö±©ÁË¡£
3Â¥2011-05-12 16:45:10
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

΢³¾¡¢ÃÎÏë

ľ³æ (ÖªÃû×÷¼Ò)

¡ï ¡ï ¡ï ¡ï
Сľ³æ(½ð±Ò+0.5):¸ø¸öºì°ü£¬Ð»Ð»»ØÌû
ÓàÔó³É(½ð±Ò+3, ³ÌÐòÇ¿Ìû+1): лл²ÎÓë½»Á÷£¡ 2011-05-12 19:12:02
CODE:
#include
#include
int x(int i);
void main(void)
{
        int i;
        float dif;
        time_t start,end;

        time(&start);
        for(i=1;1;i++)
                if(x(i))
                {
                        printf("%d\n",i);
                        break;
                }
        time(&end);
        dif=difftime(end,start);
        printf("ÔËËãʱ¼ä£º%.1fÃë\n",dif);
}
int x(int i)
{
        int j,k=0;
        for(j=2;j<21;j++)
                if(i%j==0)
                        k++;
        if(k==19)
                return 1;
        else return 0;
}

´ð°¸£º232792560
ÔËÐÐʱ¼ä£º37s

Ëã·¨£º×µÄÄÇÖÖ£¡

[ Last edited by ΢³¾¡¢ÃÎÏë on 2011-5-12 at 17:20 ]
ÈηçÔÆ±ä»Ã£¬ÎÒЦ¶ÔÈËÉú£¡
4Â¥2011-05-12 17:19:14
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] 284Çóµ÷¼Á +14 ÈÃÎÒÉϰ¶°É°¢Î÷ 2026-04-09 14/700 2026-04-13 20:28 by biomen
[¿¼ÑÐ] 273Çóµ÷¼Á +3 °×¾Ó²»Ò×. 2026-04-09 5/250 2026-04-13 19:27 by or7ro
[¿¼ÑÐ] 302Çóµ÷¼Á +10 Ò×£¡? 2026-04-13 10/500 2026-04-13 19:04 by lbsjt
[¿¼ÑÐ] ²ÄÁÏ299ר˶Çóµ÷¼Á +13 +21 2026-04-09 13/650 2026-04-13 14:16 by ÕÅzhihao
[¿¼ÑÐ] ÉúÎïѧ308·ÖÇóµ÷¼Á£¨Ò»Ö¾Ô¸»ª¶«Ê¦´ó£©×ö¹ý·Ö×ÓʵÑé +9 ÏàÐűػá¹ââÍòÕ 2026-04-07 10/500 2026-04-13 10:20 by ¿Éµ­²»¿ÉÍü
[¿¼ÑÐ] Çóµ÷¼Á288 +7 ioodiiij 2026-04-10 9/450 2026-04-13 08:33 by Hayaay
[¿¼ÑÐ] 339Çóµ÷¼Á +8 hanwudada 2026-04-11 9/450 2026-04-12 15:36 by laoshidan
[¿¼ÑÐ] Çóµ÷¼Á +18 MAXâê㯠2026-04-09 20/1000 2026-04-11 23:31 by zhen¡«
[¿¼ÑÐ] Çóµ÷¼Á +6 СÄô°®Ñ§Ï° 2026-04-11 9/450 2026-04-11 21:20 by À¶ÔÆË¼Óê
[¿¼ÑÐ] 0859£¬337Çóµ÷¼Á +4 ÑÐs. 2026-04-10 4/200 2026-04-11 11:34 by caotw2020
[¿¼ÑÐ] 298Çóµ÷¼Á +5 ²ÐºÉÐÂÁø 2026-04-07 5/250 2026-04-11 11:02 by ×ÏêØ×ÏÆå
[¿¼ÑÐ] 288Çóµ÷¼Á +15 ´úfish 2026-04-09 16/800 2026-04-11 10:26 by wwj2530616
[¿¼ÑÐ] 342µç×ÓÐÅϢר˶Çóµ÷¼Á +9 ÄãÈÃÎÒÔõôÀóÖ¦ 2026-04-10 10/500 2026-04-11 08:33 by zhq0425
[¿¼ÑÐ] µ÷¼ÁÉêÇë086000Ò»Ö¾Ô¸Î÷±±Å©ÁֿƼ¼´óѧÉúÎïÓëÒ½Ò©320·Ö-±¾¿ÆÆë³¹¤Òµ´óѧ +3 ÃÀÃÀŮʿ 2026-04-09 3/150 2026-04-10 10:31 by liuhuiying09
[¿¼ÑÐ] 085404£¬285·ÖÇóµ÷¼Á +12 Þ±Þ±¿¼ÑÐ 2026-04-07 14/700 2026-04-09 23:10 by parmtree
[¿¼ÑÐ] 0703»¯Ñ§Çóµ÷¼Á +21 ²»ÖªÃûµÄСئ 2026-04-08 21/1050 2026-04-09 18:55 by l_paradox
[¿¼ÑÐ] 083200 ³õÊÔ305·Ö Çóµ÷¼Á Ôݲ»¿¼ÂÇ¿çרҵ +15 Claireyyyy 2026-04-09 15/750 2026-04-09 16:11 by zhuimr
[¿¼ÑÐ] 086004 Çóµ÷¼Á 309 +7 Yin DY 2026-04-08 7/350 2026-04-09 13:59 by Delta2012
[¿¼ÑÐ] ÉúÎïÒ½Ò©µ÷¼Á£üSCIÖпÆÔºÈýÇøÒ»×÷+¶àÏî¿ÆÑгɹû +8 likangxing 2026-04-07 11/550 2026-04-08 00:02 by lys0704
[¿¼ÑÐ] 307Çóµ÷¼Á +3 Youth@@ 2026-04-07 3/150 2026-04-07 22:00 by hemengdong
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û