|
发表于 2017-6-13 12:44:24
|
显示全部楼层
本帖最后由 渡风 于 2017-6-13 12:45 编辑
此代码使用matlab编程
Problem46所用时间为1.052秒
Problem46的答案为5777
- %% Problem46.m
- %最后编辑时间:2017-06-13 11:00 版本1.0
- %找出第一个奇合数,使得其不能被一个质数和一个数平方的两倍的和表示
- % Problem46所用时间为1.052秒
- % Problem46的答案为5777
- function Output = Problem46()
- tic
- Start = 35;
- Judge = 1;
- while (Judge == 1)
- Start = Start + 2;
- Judge = P64(Start);
- end
- Output = Start;
- toc
- disp('此代码使用matlab编程')
- disp(['Problem46所用时间为',num2str(toc),'秒'])
- disp(['Problem46的答案为',num2str(Output)])
- end
- % 输入一个奇合数,判断其能不能被一个质数和令一个数平方的和;
- function Judge = P64(n)
- if nargin == 0
- n = 31;
- end
- Judge = 0;
- if isprime(n) == 1
- Judge = 1;
- else
- for ii = 3 : 2 : n-2
- if sqrt((n - ii)/2 ) == floor(sqrt((n - ii)/2 ))
- if isprime(ii) == 1
- Judge = 1;
- break
- end
- end
- end
- end
- end
复制代码 |
|