版块导航
正在加载中...
客户端APP下载
论文辅导
申博辅导
登录
注册
帖子
帖子
用户
本版
应《网络安全法》要求,自2017年10月1日起,未进行实名认证将不得使用互联网跟帖服务。为保障您的帐号能够正常使用,请尽快对帐号进行手机号验证,感谢您的理解与支持!
24小时热门版块排行榜
>
论坛更新日志
(457)
>
虫友互识
(42)
>
导师招生
(10)
>
休闲灌水
(10)
>
考研
(8)
>
论文投稿
(7)
>
找工作
(6)
>
考博
(4)
>
公派出国
(4)
>
SciFinder/Reaxys
(3)
>
博后之家
(3)
>
教师之家
(3)
>
硕博家园
(3)
>
文学芳草园
(2)
>
招聘信息布告栏
(1)
>
基金申请
(1)
小木虫论坛-学术科研互动平台
»
计算模拟区
»
程序语言
»
其它
»
Euler 工程 第三十二题:pandigital 数
2
1/1
返回列表
查看: 1093 | 回复: 3
只看楼主
@他人
存档
新回复提醒
(忽略)
收藏
在APP中查看
本帖产生 2 个 程序强帖 ,点击这里进行查看
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖
libralibra
至尊木虫
(著名写手)
骠骑将军
程序强帖: 40
应助: 817
(博后)
金币: 12914.1
红花: 64
帖子: 2238
在线: 287.3小时
虫号: 696514
注册: 2009-02-05
专业: 计算机软件
★ ★ ★
小木虫(金币
+0.5
):给个红包,谢谢回帖
jjdg(金币+2): 辛苦了 2011-06-23 23:03:35
余泽成(程序强帖+1): 2011-06-26 00:15:54
python的,我是暴力狂
CODE:
#!usr/bin/env python
from mytictoc import tic, toc
# 只有 #*#### 或者 ##*### 会产生 ####
# 否则 max(##*##) = 98*76 = 7448, len(98+76+7448)<9
# min(###*###) = 123*456 = 56088, len(123+456+56088)>9
# ##############
# 子函数,如果a,b,a*b包含1-9,返回true
def testProduct(a,b):
if len(str(a)+str(b)+str(a*b))==9:
return set(str(a)+str(b)+str(a*b))==set('123456789')
else:
return False
def euler32():
tic()
# 第一种情况: #*####
num14 = [i*j for i in xrange(2,9) for j in xrange(1234,9876) if testProduct(i,j)]
# 第二种情况: ##*###
num23 = [i*j for i in xrange(12,98) for j in xrange(123,987) if testProduct(i,j)]
# 组合2个list
num14.extend(num23)
# 打印结果
print sum(list(set(num14)))
toc()
if __name__=='__main__':
euler32()
结果
CODE:
45228
Elapsed time: 0.32048878 seconds
[
Last edited by libralibra on 2011-6-23 at 15:02
]
赞
一下
(3人)
回复此楼
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
3楼
2011-06-23 15:01:23
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
智能机器人
Robot
(super robot)
我们都爱小木虫
找到一些相关的精华帖子,希望有用哦~
Euler 工程 第四十四题
已经有4人回复
Euler 工程 第四十二题: 三角词
已经有4人回复
Euler 工程 第四十一题
已经有5人回复
Euler 工程 第三十八题
已经有9人回复
Euler 工程 第三十七题
已经有6人回复
Euler 工程 第三十六题:
已经有18人回复
Euler 工程 第三十五题:循环质数
已经有16人回复
Euler 工程 第三十一题: 换零钱
已经有10人回复
Euler 工程 第三十题
已经有12人回复
Euler 工程 第廿九题:有多少不同的项?
已经有30人回复
Euler 工程 第廿八题:旋转矩阵对角线的和
已经有6人回复
Euler 工程 第廿七题:系数的积
已经有15人回复
Euler 工程 第廿六题:最长的循环节
已经有9人回复
Euler 工程 第廿五题:Fibonacci 数列第一个包含1000个数字的项
已经有3人回复
Euler 工程 第廿四题:全排列的第100万项
已经有19人回复
Euler 工程 第廿三题:
已经有16人回复
Euler 工程 第廿二题: 姓的总分
已经有13人回复
Euler 工程 第廿题:100! 的各项和
已经有5人回复
Euler 工程 第十九题:每月第一天是周日的天数
已经有4人回复
Euler 工程 第十八题:三角阵上最大的和
已经有12人回复
Euler 工程第十六题:2的1000次方的各项和
已经有14人回复
Euler 工程 第14题:找最长的数列
已经有9人回复
Euler 工程 第十一题:相邻元素乘积最大
已经有10人回复
Euler 工程 第三题:寻找600851475143的最大质因子
已经有18人回复
点击这里搜索更多相关资源
科研从小木虫开始,人人为我,我为人人
holmescn
金虫
(正式写手)
程序强帖: 37
应助: 1
(幼儿园)
金币: 1918.8
散金: 275
红花: 1
帖子: 699
在线: 102.6小时
虫号: 913482
注册: 2009-11-26
性别: GG
专业: 凝聚态物性 II :电子结构
★ ★ ★
余泽成(金币+3, 程序强帖+1): 鼓励交流! 2011-06-26 00:16:10
改进版的穷举,python版
CODE:
from itertools import permutations
numbers = set(range(1,10))
results = []
for num in permutations(numbers, 4):
n = int("%d"*4 % num)
subset = numbers - set(num)
# for #*####
for x in subset:
if n % x == 0:
div = set([int(c) for c in str(n/x)])
if len(div) == 4 and x not in div and div.issubset(subset):
results.append(n)
print "%d*%d=%d" % (x, n/x, n)
break
# for ##*###
for x in permutations(subset, 2):
xx = int("%d"*2 % x)
if n % xx == 0:
div = set([int(c) for c in str(n/xx)])
if len(div) == 3 and x[0] not in div and x[1] not in div and div.issubset(subset):
results.append(n)
print "%d*%d=%d" % (xx, n/xx, n)
break
print sum(set(results))
有些逻辑还是太啰嗦,没有找到数学上更好的表达。有待改进。
赞
一下
(1人)
回复此楼
4楼
2011-06-25 21:32:54
已阅
回复此楼
关注TA
给TA发消息
送TA红花
TA的回帖
相关版块跳转
第一性原理
量子化学
计算模拟
分子模拟
仿真模拟
程序语言
我要订阅楼主
holmescn
的主题更新
2
1/1
返回列表
如果回帖内容含有宣传信息,请如实选中。否则帐号将被全论坛禁言
普通表情
龙
兔
虎
猫
高级回复
(可上传附件)
百度网盘
|
360云盘
|
千易网盘
|
华为网盘
在新窗口页面中打开自己喜欢的网盘网站,将文件上传后,然后将下载链接复制到帖子内容中就可以了。
信息提示
关闭
请填处理意见
关闭
确定