版块导航
正在加载中...
客户端APP下载
论文辅导
申博辅导
登录
注册
帖子
帖子
用户
本版
应《网络安全法》要求,自2017年10月1日起,未进行实名认证将不得使用互联网跟帖服务。为保障您的帐号能够正常使用,请尽快对帐号进行手机号验证,感谢您的理解与支持!
24小时热门版块排行榜
>
论坛更新日志
(3439)
>
虫友互识
(715)
>
文献求助
(205)
>
导师招生
(200)
>
硕博家园
(92)
>
休闲灌水
(90)
>
考博
(51)
>
博后之家
(47)
>
基金申请
(42)
>
找工作
(36)
>
论文投稿
(35)
>
招聘信息布告栏
(30)
>
公派出国
(30)
>
教师之家
(29)
>
考研
(27)
>
论文道贺祈福
(24)
小木虫论坛-学术科研互动平台
»
计算模拟区
»
程序语言
»
其它
»
Euler 工程 第四十一题
5
1/1
返回列表
查看: 898 | 回复: 5
只看楼主
@他人
存档
新回复提醒
(忽略)
收藏
在APP中查看
本帖产生 1 个 程序强帖 ,点击这里进行查看
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖
holmescn
金虫
(正式写手)
程序强帖: 37
应助: 1
(幼儿园)
金币: 1918.8
散金: 275
红花: 1
帖子: 699
在线: 102.6小时
虫号: 913482
注册: 2009-11-26
性别: GG
专业: 凝聚态物性 II :电子结构
[交流]
Euler 工程 第四十一题
已有1人参与
又是一个数独数的题.
一个n位的数独数(pandigital)定义为: 包含1到n这n个数字, 且每个数字仅包含一次.
比如2143就是一个数独数, 同时他还是一个质数.
那么最大的n位数独质数是多少?
[
Last edited by holmescn on 2011-7-14 at 20:52
]
回复此楼
» 猜你喜欢
AI 太可怕了,写基金时,提出想法,直接生成的文字比自己想得深远,还有科学性
已经有3人回复
有院领导为了换新车,用横向课题经费买了俩车
已经有9人回复
酰胺脱乙酰基
已经有13人回复
博士延得我,科研能力直往上蹿
已经有8人回复
同年申请2项不同项目,第1个项目里不写第2个项目的信息,可以吗
已经有4人回复
有时候真觉得大城市人没有县城人甚至个体户幸福
已经有10人回复
天津大学招2026.09的博士生,欢迎大家推荐交流(博导是本人)
已经有5人回复
CSC & MSCA 博洛尼亚大学能源材料课题组博士/博士后招生|MSCA经费充足、排名优
已经有6人回复
面上项目申报
已经有3人回复
遇见不省心的家人很难过
已经有22人回复
高级回复
» 本主题相关价值贴推荐,对您同样有帮助:
Project Euler 50 欧拉工程 50 题
已经有12人回复
Project Euler 48 欧拉工程 48 题
已经有30人回复
Project Euler 45 欧拉工程 45 题
已经有7人回复
Euler 工程 第三十五题:循环质数
已经有16人回复
Euler 工程 第廿九题:有多少不同的项?
已经有30人回复
Euler 工程 第廿六题:最长的循环节
已经有9人回复
Euler 工程 第廿四题:全排列的第100万项
已经有19人回复
Euler 工程第十六题:2的1000次方的各项和
已经有14人回复
Euler 工程 第十五题:从左上角到右下角有多少条路?
已经有5人回复
Euler 工程 第14题:找最长的数列
已经有9人回复
Euler Project Q13 欧拉工程第十三题
已经有20人回复
Euler Project Q12 欧拉工程第十二题
已经有23人回复
Euler 工程 第十一题:相邻元素乘积最大
已经有10人回复
Euler Project Q7. 欧拉工程第七题
已经有14人回复
Euler 工程 第六题:平方和与和的平方差多少?
已经有5人回复
Euler 工程 第二题:Fibonacci数列中小于4百万的偶数的和
已经有8人回复
1楼
2011-07-13 08:35:34
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
holmescn
金虫
(正式写手)
程序强帖: 37
应助: 1
(幼儿园)
金币: 1918.8
散金: 275
红花: 1
帖子: 699
在线: 102.6小时
虫号: 913482
注册: 2009-11-26
性别: GG
专业: 凝聚态物性 II :电子结构
★
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
]
赞
一下
(1人)
回复此楼
高级回复
4楼
2011-07-14 16:40:56
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
查看全部 6 个回答
holmescn
金虫
(正式写手)
程序强帖: 37
应助: 1
(幼儿园)
金币: 1918.8
散金: 275
红花: 1
帖子: 699
在线: 102.6小时
虫号: 913482
注册: 2009-11-26
性别: GG
专业: 凝聚态物性 II :电子结构
★ ★ ★
余泽成(金币+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
]
赞
一下
(1人)
回复此楼
2楼
2011-07-13 09:24:04
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
holmescn
金虫
(正式写手)
程序强帖: 37
应助: 1
(幼儿园)
金币: 1918.8
散金: 275
红花: 1
帖子: 699
在线: 102.6小时
虫号: 913482
注册: 2009-11-26
性别: GG
专业: 凝聚态物性 II :电子结构
★ ★
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
]
赞
一下
(1人)
回复此楼
3楼
2011-07-14 15:03:23
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
libralibra
至尊木虫
(著名写手)
骠骑将军
程序强帖: 40
应助: 817
(博后)
金币: 12914.1
红花: 64
帖子: 2238
在线: 287.3小时
虫号: 696514
注册: 2009-02-05
专业: 计算机软件
★ ★
小木虫(金币
+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
赞
一下
(2人)
回复此楼
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
5楼
2011-07-14 19:18:42
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
查看全部 6 个回答
如果回帖内容含有宣传信息,请如实选中。否则帐号将被全论坛禁言
普通表情
龙
兔
虎
猫
高级回复
(可上传附件)
百度网盘
|
360云盘
|
千易网盘
|
华为网盘
在新窗口页面中打开自己喜欢的网盘网站,将文件上传后,然后将下载链接复制到帖子内容中就可以了。
信息提示
关闭
请填处理意见
关闭
确定