求出哥德巴赫猜想的所有解(将一个大于9的奇数拆分成三个素数之和),并按从小到的顺序写出。
【输出描述】
第一行,一个整数N,表示解的总数。
第2-N+1行,每行一个解。
【输入样例】
15
【输出样例】
3
15=2+2+11
15=3+5+7
15=5+5+5
php用function和for循环 输出 如下
答案:1 悬赏:30 手机版
解决时间 2021-01-30 02:07
- 提问者网友:轻浮
- 2021-01-29 03:56
最佳答案
- 五星知识达人网友:有你哪都是故乡
- 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
<?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
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯