²é¿´: 1066  |  »Ø¸´: 5
±¾Ìû²úÉú 1 ¸ö ³ÌÐòÇ¿Ìû £¬µã»÷ÕâÀï½øÐв鿴

holmescn

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

[½»Á÷] Euler ¹¤³Ì µÚËÄʮһÌâ ÒÑÓÐ1È˲ÎÓë

ÓÖÊÇÒ»¸öÊý¶ÀÊýµÄÌâ.

Ò»¸önλµÄÊý¶ÀÊý(pandigital)¶¨ÒåΪ: °üº¬1µ½nÕân¸öÊý×Ö, ÇÒÿ¸öÊý×Ö½ö°üº¬Ò»´Î.

±ÈÈç2143¾ÍÊÇÒ»¸öÊý¶ÀÊý, ͬʱËû»¹ÊÇÒ»¸öÖÊÊý.

ÄÇô×î´óµÄnλÊý¶ÀÖÊÊýÊǶàÉÙ?

[ Last edited by holmescn on 2011-7-14 at 20:52 ]
»Ø¸´´ËÂ¥

» ²ÂÄãϲ»¶

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

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

holmescn

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

¡ï ¡ï ¡ï
ÓàÔó³É(½ð±Ò+3, ³ÌÐòÇ¿Ìû+1): ¹ÄÀø½»Á÷£¡ 2011-07-13 09:53:24
Python͵ÀÁ°æ:
CODE:
# Project Euler Problem 41
#
#
# Gen Primes

from math import sqrt
from itertools import permutations

def isPrime(n):
    for x in xrange(2, int(sqrt(n))):
        if n % x == 0:
            return False
    return True

num = [9, 8, 7, 6, 5, 4, 3, 2, 1]

l = 9
left = 0
while l > 1:
    for x in permutations(num[left:], l):
        n = int("%d"*l % x)
        if isPrime(n):
            print "It is", n
            l = 1
            break
    l -= 1
    left += 1

Result: 7652413
Elapsed Time: 3.6 s

Èç¹û´Ó7¿ªÊ¼,ÄÇÖ»Òª0.044s.

[ Last edited by holmescn on 2011-7-14 at 21:18 ]
2Â¥2011-07-13 09:24:04
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

holmescn

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

¡ï ¡ï
xzhdty(½ð±Ò+2): »¶Ó­³£À´ 2011-07-14 15:43:00
¸ÄÕýºó,ÓÃʱ²»µ½0.002sÁË.Ò²²»ÓÃOpenMPÁË.
CODE:
Program euler41
    Implicit None
    Integer, Parameter :: N = 7
    Integer, Dimension(N) :: Digits
    Integer :: I, R, X

    ! Digits
    Digits = (/(I, I=N,1,-1)/)

    !$OMP PARALLEL SHARED(Digits) Private(R,I,X)
    !$OMP DO
    Do R = 9, 1, -1
        Do I = 1, Arrangement(N, R)
            X = Permutations(R, I)
            If(IsPrime(X)) Then
                Print *, X
            EndIf
        EndDo
    EndDo
    !$OMP END DO
    !$OMP END PARALLEL

Contains

    Function Arrangement(N, M) Result(R)
        Implicit None
        Integer, intent(in) :: N, M
        Integer :: R
        Integer :: I
        R = 1
        Do I = (N-M+1), N
            R = R * I
        End DO
    EndFunction

    Function IsPrime(N) Result(R)
        Implicit None
        Integer :: N, I
        Logical :: R
        R = .True.
        !$OMP PARALLEL SHARED(N, R) PRIVATE(I)
        !$OMP DO
        DO I = 2, Floor(Sqrt(N*1.0))
            If(Mod(N, I) == 0) Then
                R = .False.
            EndIf
        EndDo
        !$OMP END DO
        !$OMP END PARALLEL
        Return
    EndFunction

    Function Permutations(R, nth) Result(V)
        Implicit None
        Integer, Dimension(N) :: Indices
        Integer, Intent(In) :: R, nth
        Integer :: V
        Integer :: M
        Integer :: Factorial
        Integer :: I, J, K

        Indices = 1
        M = nth - 1
        V = 0
        Factorial = Arrangement(N-1, N-1)

        Do I = 1, R
            J = M / Factorial + 1
            M = Mod(M, Factorial)
            If(N.ne.I) Factorial = Factorial / (N-I)

            ! Find the index
            K = 1
            Do
                If(Indices(K) > 0) J = J - 1
                If(J .eq. 0) Exit
                K = K + 1
            End Do
            Indices(K) = 0

            ! Gen the Number
            V = V*10 + Digits(K)
        EndDo
    EndFunction
End Program euler41

[ Last edited by holmescn on 2011-7-14 at 21:21 ]
3Â¥2011-07-14 15:03:23
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

holmescn

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

¡ï
jjdg(½ð±Ò+1): ¸Ðл²ÎÓë 2011-07-14 20:11:38
±¾À´ÊÇҪʵÏÖÒ»¸ö»ùÓÚλÖõÄÈ«ÅÅÁÐËã·¨, ½á¹û·¢ÏÖÁËÒ»¸öÓý׳˵ÄËã·¨. ÕæÊÇÒâÍâµÄÊÕ»ñ.

¿´ÉÏÃæµÄFortranËã·¨. Èç¹ûÐòÁ㤶ÈΪm, ÄǵÚn¸öÅÅÁеĵÚÒ»¸öÔªËØµÄindex¾ÍÊÇ

È»ºóµÚ¶þ¸öÔªËØÊÇÊ£ÏÂÔªËØµÄµÚn1¸öÈ«ÅÅÁеĵÚÒ»¸öÔªËØ, ¶øn1ÓÉÏÂÃæÕâ¸öʽ×ӵõ½

ÕâÑù,¾ÍÄÜÒÀ´ÎµÃµ½Ã¿¸öÔªËØÔÚÔ­ÐòÁÐÖеÄindexÁË. Ò²¾ÍµÃµ½Á˵ÚN¸öÈ«ÅÅÁÐ.

[ Last edited by holmescn on 2011-7-14 at 17:06 ]
4Â¥2011-07-14 16:40:56
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

libralibra

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

æôÆï½«¾ü

¡ï ¡ï
Сľ³æ(½ð±Ò+0.5):¸ø¸öºì°ü£¬Ð»Ð»»ØÌû
jjdg(½ð±Ò+1): ¸Ðл²ÎÓë 2011-07-14 20:11:47
ÒýÓûØÌû:
Originally posted by holmescn at 2011-07-13 09:24:04:
Python͵ÀÁ°æ:
# Project Euler Problem 41
#
#
# Gen Primes

from math import sqrt
from itertools import permutations

def isPrime(n):
    for x in xrange(2, int(sqrt(n))):

ÊÇ"Êý¶ÀÖÊÊý"°¡,1-9¿Ï¶¨²»ÊÇÖÊÊý,sum(1:9)=45 mod 3 = 0°¡

matlabµÄ
CODE:

function result = euler41()
tic;
n = 7; % sum(1:9) mod 3 == 0, sum(1:8) mod 3 == 0
numlist = sort(str2num(perms('1':num2str(n))),'descend'); % get descend sort
result = isprime(numlist);
result = numlist(result==1); % find all primes
result = result(1); % find the biggest
toc;
end

½á¹û
CODE:
% Elapsed time is 0.284507 seconds.
% ans =
%      7652413

matlab/VB/python/c++/Javaд³ÌÐòÇë·¢QQÓʼþ:790404545@qq.com
5Â¥2011-07-14 19:18:42
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

holmescn

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

ÒýÓûØÌû:
Originally posted by libralibra at 2011-07-14 19:18:42:
ÊÇ"Êý¶ÀÖÊÊý"°¡,1-9¿Ï¶¨²»ÊÇÖÊÊý,sum(1:9)=45 mod 3 = 0°¡

matlabµÄ
[code]
function result = euler41()
tic;
n = 7; % sum(1:9) mod 3 == 0, sum(1:8) mod 3 == 0
numlist = sort(str ...

¿´À´´óÄÔÏÖÔÚÊDz»ÐÐÁË

[ Last edited by holmescn on 2011-7-14 at 21:14 ]
6Â¥2011-07-14 20:57:19
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ holmescn µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[»ù½ðÉêÇë] ͶƱ:  ÓжàÉÙÈËÊǽñÌì²éϵͳ֪µÀ½á¹ûµÄ£¿ +16 °®¿´ÊéµÄ¿ÉÀÖ 2026-08-26 18/900 2026-08-28 05:13 by winsaint
[»ù½ðÉêÇë] Ϊʲô×ÊÖúÊý¸÷´ó¸ßУ¶¼´´Ð¸ߣ¬×Ô¼ºÉêÇëÔõô¾ÍÕâôÄÑ +9 Kittylucky 2026-08-27 9/450 2026-08-28 01:08 by jurkat.1640
[½Ìʦ֮¼Ò] µ¼Ê¦Í²ۣºÎÒÔõô̯ÉÏÁËÕâô¸ö¼«Æ·Ñо¿Éú£¡ +7 ËÕ¶«ÆÂ¶þÊÀ 2026-08-23 7/350 2026-08-27 18:14 by ˲ϢÓîÖæ
[»ù½ðÉêÇë] ÉêÇëɾ³ý±¾Ìû +6 lyz123lyz 2026-08-27 7/350 2026-08-27 17:31 by Äþ¾²ÖÂÔ¶sy
[»ù½ðÉêÇë] Ôõô¿´Çà»ùÖÐÁËûÓа¡ +5 Ò¶¾Å΢ 2026-08-26 5/250 2026-08-27 10:35 by l_zh2008
[ÎÄѧ·¼²ÝÔ°] ÃÎÏë +3 myrtle 2026-08-26 3/150 2026-08-27 10:01 by angelyueyi
[½Ìʦ֮¼Ò] ÊÛSCIÒ»ÇøÎÄÕ£¬ÎÒ:8.O.551.O.5.4,¿ÆÄ¿È«,¿ÉÙ¤¼± +3 LIbGuocjEEYw 2026-08-26 4/200 2026-08-27 04:33 by Ie9AyIAvGbvs
[˶²©¼ÒÔ°] ÊÛSCIÒ»ÇøT0PÎÄÕ£¬ÎÒ:8.O.55.1.O.54,¿ÆÄ¿ÆëÈ«,¿É+¼± +3 LIbGuocjEEYw 2026-08-26 4/200 2026-08-27 02:01 by Ie9AyIAvGbvs
[»ù½ðÉêÇë] 2026¹ú×ÔÈ»º¯ÆÀ·Ñµ½ÕË +22 ÑòÑü°å 2026-08-21 25/1250 2026-08-26 15:00 by zuocuiping
[»ù½ðÉêÇë] 2026Äê8ÔÂ25ÈÕ¹ú×ÔÈ»·Å°ñǰͻȻÊÕµ½ÁÐÈëÆÀÉóר¼ÒÓʼþ£¬ÓйØÏµÂ𣿠+25 ľˮ˼¶¹ 2026-08-25 28/1400 2026-08-26 14:53 by draco1987
[»ù½ðÉêÇë] Ϊʲô¹ú×ÔÈ»²»ÄÜÖ±½Ó¹«²¼ +4 bjdxyxy 2026-08-26 4/200 2026-08-26 13:12 by qingmu1201
[»ù½ðÉêÇë] ¹úºÏÀïÃæÄÜ¿´µ½ÁË +7 Ò»»³Ü°Çï 2026-08-26 7/350 2026-08-26 11:23 by zhaosm1982
[»ù½ðÉêÇë] ϵͳ½ø²»È¥ +4 yanglien 2026-08-26 5/250 2026-08-26 11:10 by wenfengw83
[»ù½ðÉêÇë] ¹úºÏ¿É²éÁË +3 paperzjh 2026-08-26 3/150 2026-08-26 10:41 by LemmonTr
[»ù½ðÉêÇë] ½ñÌìÎñί»á¿ªÍêÁË£¬Ã÷Ìì³ö½á¹ûÂð +19 angus9576 2026-08-25 23/1150 2026-08-26 10:03 by zp519
[Ö°³¡ÈËÉú] ѧÉúײ¼û¸¨µ¼Ô±ËÍÍâÂô£¬µÚ¶þÌìÈ«°à¶¼³ÁĬÁË +3 ¾¨ÓãÈÚ½ð_Õã½­_É 2026-08-22 3/150 2026-08-26 09:01 by zzuzxg
[»ù½ðÉêÇë] Å£À´£¡Ã×À´£¡ÃæÀ´£¡ +8 beefly 2026-08-26 8/400 2026-08-26 08:37 by xuzhipiao
[»ù½ðÉêÇë] ijЩ»ú¹¹£¬ÒÔЧÂʵÍΪÈÙ£¬ÒÔЧÂʵÍ×÷Ϊ´æÔڸР+9 yuleib84 2026-08-25 10/500 2026-08-25 17:14 by alexon
[»ù½ðÉêÇë] Èç¹û´Ë¿ÌÄãÕýÔÚΪ¹ú»ù¸Ðµ½½¹ÂÇ£¬²»·ÁÀ´ÌýÌýÕâÊס¶»ù½ðÖ®Íâ¡· +8 scalable 2026-08-24 8/400 2026-08-25 12:52 by jnhyjjm
[»ù½ðÉêÇë] ¿´À´½ñÌì²»»á·Å°ñÁË£¿ +8 chengyan1220 2026-08-21 11/550 2026-08-21 17:52 by dcqxinyang
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û