永发信息网

php用function和for循环 输出 如下

答案:1  悬赏:30  手机版
解决时间 2021-01-30 02:07
  • 提问者网友:轻浮
  • 2021-01-29 03:56
求出哥德巴赫猜想的所有解(将一个大于9的奇数拆分成三个素数之和),并按从小到的顺序写出。
【输出描述】
第一行,一个整数N,表示解的总数。
第2-N+1行,每行一个解。
【输入样例】

15

【输出样例】

3
15=2+2+11
15=3+5+7
15=5+5+5
最佳答案
  • 五星知识达人网友:有你哪都是故乡
  • 2021-01-29 05:34
测试通过的程序代码如下:
<?php
  $x=fgets(STDIN)+0;
  $result=array();
  chk($x);
  echo count($result)."\n";
  foreach ($result as $arr) echo "$x=".implode($arr,'+')."\n";

function ss($x){
  if ($x==2) return true;
  $y=ceil(sqrt($x));
  for ($i=2;$i<=$y;$i++)
    if ($x%$i==0) return false;
  return true;
}
function chk($x){
  global $result;
  $y=ceil($x/3);
  for ($i=2;$i<=$y;$i++) if (ss($i))
    for ($j=$i;$j<=$y;$j++) if (ss($j)){
      $k=$x-$i-$j;
      if (ss($k)) $result[]=array($i,$j,$k);
    }
}
?>程序运行示例如下:
E:\TEMP\文件\exp>a.php
15
3
15=2+2+11
15=3+5+7
15=5+5+5
E:\TEMP\文件\exp>a.php
9
2
9=2+2+5
9=3+3+3
E:\TEMP\文件\exp>a.php
17
3
17=2+2+13
17=3+3+11
17=5+5+7
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯