鱼C论坛

 找回密码
 立即注册
查看: 5115|回复: 13

题目46:最小的不能写作一个质数与一个平方数的二倍之和的奇合数是多少?

[复制链接]
发表于 2017-6-13 12:44:24 | 显示全部楼层
本帖最后由 渡风 于 2017-6-13 12:45 编辑

此代码使用matlab编程
Problem46所用时间为1.052秒
Problem46的答案为5777
  1. %% Problem46.m
  2. %最后编辑时间:2017-06-13 11:00 版本1.0
  3. %找出第一个奇合数,使得其不能被一个质数和一个数平方的两倍的和表示

  4. % Problem46所用时间为1.052秒
  5. % Problem46的答案为5777

  6. function Output = Problem46()
  7. tic
  8. Start = 35;
  9. Judge = 1;
  10. while (Judge == 1)
  11.     Start = Start + 2;
  12.     Judge =  P64(Start);
  13. end

  14. Output = Start;
  15. toc

  16. disp('此代码使用matlab编程')
  17. disp(['Problem46所用时间为',num2str(toc),'秒'])
  18. disp(['Problem46的答案为',num2str(Output)])
  19. end
  20. % 输入一个奇合数,判断其能不能被一个质数和令一个数平方的和;
  21. function Judge = P64(n)
  22. if nargin == 0
  23.     n = 31;
  24. end
  25. Judge = 0;
  26. if isprime(n) == 1
  27.     Judge = 1;
  28. else
  29.     for ii = 3 : 2 : n-2
  30.         if sqrt((n - ii)/2 ) ==  floor(sqrt((n - ii)/2 ))
  31.             if  isprime(ii) == 1
  32.                 Judge = 1;
  33.                 break
  34.             end
  35.         end
  36.     end
  37. end
  38. end
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-9-19 03:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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