- 最后登录
- 2017-10-10
- 在线时间
- 88 小时
- 阅读权限
- 20
- 注册时间
- 2008-3-19
- 积分
- 421
- 帖子
- 233
- 精华
- 2
- UID
- 25681
- 性别
- 保密

- 积分
- 421
- 帖子
- 233
- 精华
- 2
- UID
- 25681
- 性别
- 保密
|
这道题不编程体会不到乐趣,呵呵!
白天没时间,所以思考了很多,反而是好事,如果暴力破解,估计要半天吧!
1:采用9!或10!做总次数比多重for循环效率高。
2:依次验证每个数是否能整除然后break,不如分解出9位数或10位数的所有因数来得快。
3:边分解边对长时间没有出现的数值进行验证,呵呵!等着分解完也是很耗时的。
4:第三问的解很可能是满足第一问的质数,否则它的因数之前应该验证过整除某个9位数,即不满足互质条件。
这个结论虽没精确证明,但可以对找到的第一问解加以验证即可。
其实最好是对因数分解中长时间不出现的质数依次验证,找到满足第一问的第一个质数即可,这样最快。
可以看到,上述想法不用将可能情况都求出来,一个五十多行的程序,改改跑跑,两个小时就可以搞定了,呵呵!
第二问答案:37037=7*11*13*37,怪不得跟这么多数格格不入。
第三问答案:44449,曾想过能是个什么数呢,居然是它! |
|