²é¿´: 1071  |  »Ø¸´: 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

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

¡ï ¡ï
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µÄ»ØÌû
²é¿´È«²¿ 6 ¸ö»Ø´ð

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

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

¡ï
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µÄ»ØÌû
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[»ù½ðÉêÇë] ͶƱ:  ÓжàÉÙÈËÊǽñÌì²éϵͳ֪µÀ½á¹ûµÄ£¿ +16 °®¿´ÊéµÄ¿ÉÀÖ 2026-08-26 18/900 2026-08-28 09:33 by winsaint
[»ù½ðÉêÇë] Ôõô²é°¡ +6 huang1991js 2026-08-26 6/300 2026-08-28 08:42 by winsaint
[»ù½ðÉêÇë] Ϊʲô×ÊÖúÊý¸÷´ó¸ßУ¶¼´´Ð¸ߣ¬×Ô¼ºÉêÇëÔõô¾ÍÕâôÄÑ +10 Kittylucky 2026-08-27 10/500 2026-08-28 07:10 by sincosx
[»ù½ðÉêÇë] ÃæÉϺÏ×÷µ¥Î»¸ÇÕ +5 ssyjh 2026-08-27 5/250 2026-08-27 20:50 by gdfollow
[»ù½ðÉêÇë] ÉêÇëɾ³ý±¾Ìû +6 lyz123lyz 2026-08-27 7/350 2026-08-27 17:31 by Äþ¾²ÖÂÔ¶sy
[»ù½ðÉêÇë] »ù½ðδÖУ¬ÕâÖÖ´ð¸´ÊÇÄ£°åÂ𣿠+5 zhaosm1982 2026-08-27 6/300 2026-08-27 16:00 by lfy8008
[»ù½ðÉêÇë] Ôõô¿´Çà»ùÖÐÁËûÓа¡ +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
[»ù½ðÉêÇë] ÎÒ²»Àí½â£¡ +15 Edward_pc 2026-08-26 23/1150 2026-08-26 20:34 by zzuzxg
[»ù½ðÉêÇë] ϵͳ²é²»µ½ +10 ¶­°Ëǧ 2026-08-26 10/500 2026-08-26 16:30 by Equinoxhua
[»ù½ðÉêÇë] ·¶½øÖоÙÒ»ÎĵÄÖÐÐÄ˼Ïë +9 Ñ׻ƹóëÐ 2026-08-22 10/500 2026-08-26 15:40 by semaglutide
[»ù½ðÉêÇë] ¹ú¼ÊºÏ×÷¿É²éÁË£¬ÖÐÁËÃæÉÏ (EPI+1)(½ð±Ò+50) +18 Ldrop2023 2026-08-26 18/900 2026-08-26 11:15 by cmrandy
[»ù½ðÉêÇë] ϵͳ½ø²»È¥ +4 yanglien 2026-08-26 5/250 2026-08-26 11:10 by wenfengw83
[»ù½ðÉêÇë] ÏîÄ¿ÐÅÏ¢ºÍ¾­·ÑÐÅÏ¢ÔÚϵͳÀï¶¼¿ÉÒÔ¿´µ½ÁË +6 wittyboy 2026-08-26 14/700 2026-08-26 10:55 by wittyboy
[Ö°³¡ÈËÉú] ѧÉúײ¼û¸¨µ¼Ô±ËÍÍâÂô£¬µÚ¶þÌìÈ«°à¶¼³ÁĬÁË +3 ¾¨ÓãÈÚ½ð_Õã½­_É 2026-08-22 3/150 2026-08-26 09:01 by zzuzxg
[»ù½ðÉêÇë] ¹úºÏÏÖÔڲ鲻µ½ÁËÂ𣿠+10 chengyan1220 2026-08-24 20/1000 2026-08-26 08:57 by peasantsprig
[»ù½ðÉêÇë] Ã÷ÌìÓ¦¸Ã¿É²éÁË£¡£¿ +6 chengyan1220 2026-08-23 6/300 2026-08-25 19:45 by zfd97
[»ù½ðÉêÇë] Èç¹û´Ë¿ÌÄãÕýÔÚΪ¹ú»ù¸Ðµ½½¹ÂÇ£¬²»·ÁÀ´ÌýÌýÕâÊס¶»ù½ðÖ®Íâ¡· +8 scalable 2026-08-24 8/400 2026-08-25 12:52 by jnhyjjm
[½Ìʦ֮¼Ò] Ìø²ÛºóÔÚÑÐÏîÄ¿Ôõô°ì£¿ +5 ¼òµ¥»¯xn 2026-08-22 10/500 2026-08-23 12:38 by ¼òµ¥»¯xn
[»ù½ðÉêÇë] ¿´À´½ñÌì²»»á·Å°ñÁË£¿ +8 chengyan1220 2026-08-21 11/550 2026-08-21 17:52 by dcqxinyang
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û