我正在尝试求解一种算法,在该算法中,我们输入小于101且大于1的任意数字,并将其显示为两个质数之和。例如:我可以将34表示为:
我编写了算法,并且对于每个小于101且大于1的数字也可以正常工作,但是我尝试提交代码的应用程序 Dcoder 运行该代码并返回所有四个测试用例均为 False 。我的代码有什么问题吗,或者是应用程序的问题?
这是所需条件的屏幕截图:
这是我提交代码后的结果:
这是提交后我的得分。所有测试用例均返回负值以响应我的代码:'(
最后是我编写的代码:
<?php
$n = 45;
if($n == 1 || $n == 0) {
echo "No";
die;
}
if($n<=100 && $n>=0){
function IsPrime($digit)
{
for($x=2; $x<$digit; $x++)
{
if($digit %$x ==0)
{
return false;
}
}
return true;
}
$numArray = array();
$num2array = array();
$num3Array = array();
for ($i=2; $i<= $n; $i++)
for ($j=2; $j <= $n; $j++)
{
if($i%$j==0)
{
break;
}
}
if($i==$j) //
{
$numArray[] = $i;
}
}
foreach ($numArray as $key => $firstNo) {
$num2 = $n - $firstNo;
$sum = $num2 + $firstNo;
$num2array[] = $num2;
foreach ($num2array as $key => $value) {
if(IsPrime($value) == true){
$num3Array[] = $value;
}
}
if(@IsPrime($value) == false) {
echo "No";
die;
}
foreach ($num3Array as $key => $firstNo) {
$num2 = $n - $firstNo;
$sum = $num2 + $firstNo;
//echo $num2."<p>";
$num5array[] = $num2;
//echo $num2."<br>";
if($sum == $n && $firstNo >= $num2) {
echo "<p>"."$num2 "." $firstNo" . "<p>";
}
}
}
else {
echo "No";
}
?>
任何帮助将不胜感激。感谢您抽出宝贵时间来看看这个问题。 :)
编辑:IT是导致问题的IDE的代码呈现引擎。我在通过反馈表在电子邮件中进行了简短的讨论之后就知道了。 :)