找回密码
 欢迎注册
楼主: 282842712474

[讨论] 猜猜我的手机号码?

[复制链接]
 楼主| 发表于 2009-8-22 18:04:17 | 显示全部楼层
我写得含糊了,43结尾是手机的结尾,而不是素数的结尾^^
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-8-22 18:34:26 | 显示全部楼层
18965210743 == 1140353 * 16631
18907561243 == 20357 * 928799
18925160743 == 450803 * 41981
18917065243 == 70957 * 266599
18927160543 == 550993 * 34351
18965710243 == 21023 * 902141
18962715043 == 11173 * 1697191
18920516743 == 751321 * 25183
18957062143 == 191441 * 99023
18961270543 == 551729 * 34367
18917062543 == 21817 * 867079
18927615043 == 21893 * 864551
18910625743 == 42131 * 448853
18951207643 == 52201 * 363043
18967102543 == 22247 * 852569
18902756143 == 332251 * 56893
18927561043 == 382661 * 49463
18960217543 == 13037 * 1454339
18925671043 == 83101 * 227743
18927156043 == 13187 * 1435289
18901652743 == 713243 * 26501
18952607143 == 13291 * 1425973
18921567043 == 403729 * 46867
18912576043 == 33773 * 559991
18967512043 == 13799 * 1374557
18926501743 == 13841 * 1367423
18921675043 == 284233 * 66571
18957201643 == 15077 * 1257359
18970162543 == 285227 * 66509
18916705243 == 95891 * 197273
18912076543 == 646147 * 29269
18927016543 == 46171 * 409933
18962107543 == 16223 * 1168841
18976105243 == 36527 * 519509
18950126743 == 76603 * 247381
18950726143 == 1106741 * 17123
18907652143 == 87049 * 217207
18927610543 == 657049 * 28807
18965172043 == 37309 * 508327
18910725643 == 28657 * 659899
18910765243 == 639547 * 29569
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-8-22 20:05:14 | 显示全部楼层
如果再限制素数也0~9都出现就少多了
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-8-22 21:31:34 | 显示全部楼层
22# medie2005
你的prime[]初始化了多少个质数,我用了10000个质数(2~104729)还是求不出来,难道要200万个?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-8-22 22:03:06 | 显示全部楼层
10000-2000000
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-8-23 08:20:43 | 显示全部楼层
medie2005
看了你的算法,是利用hash把尾数相同的质数在一起运算
利用(a*10^4+b)(c*10^4+d)最后4位相同,减少判断次数,我觉得还要加上
temp2>=189e8/temp1 && temp2<=189e8/temp1
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-8-24 13:27:53 | 显示全部楼层
本帖最后由 〇〇 于 2009-8-24 13:45 编辑
我算过了,仅189...3这种形式的就有1426个.
medie2005 发表于 2009-8-22 09:04

c语言的速度还是很快的
10分钟计算完189....3
C:\vc6>copy con cr

^Z
已复制         1 个文件。

C:\vc6>copy con t.bat
time <cr
pm2 >1893.txt
time <cr

^Z
已复制         1 个文件。

C:\vc6>t

C:\vc6>time  0<cr
当前时间: 13:10:44.62
输入新时间:

C:\vc6>pm2  1>1893.txt

C:\vc6>time  0<cr
当前时间: 13:20:42.00
输入新时间:
改为:
if( temp>189e8 &&  temp<190e8 )
...
//if( s/100000000==189 )
缩短到2分钟

C:\vc6>time  0<cr
当前时间: 13:35:45.43
输入新时间:

C:\vc6>pm2  1>1893.txt

C:\vc6>time  0<cr
当前时间: 13:37:52.96
输入新时间:
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-8-24 16:21:37 | 显示全部楼层
我算过了,仅189...3这种形式的就有1426个.
medie2005 发表于 2009-8-22 09:04

你的代码是怎么保证不出现重复的电话号码的
(temp1 temp2互换的情况)
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-8-25 11:17:53 | 显示全部楼层
你的代码是怎么保证不出现重复的电话号码的
(temp1 temp2互换的情况)
〇〇 发表于 2009-8-24 16:21

看出来了,通过for(j=i保证
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-8-25 11:34:27 | 显示全部楼层
29# 〇〇
pm2通过优化编译器参数,cl -O2 pm2.cpp
计算189..43从14秒到9秒
再局部优化代码pm21,
if( digx[temp%10]!=1 && digx[temp%10]!=2 ) goto end;
提早退出,没有提高

vc6.rar

1.09 KB, 下载次数: 0, 下载积分: 金币 -1 枚, 经验 1 点, 下载 1 次

售价: 1 枚金币  [记录]  [购买]

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-4-25 19:52 , Processed in 0.047601 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表