测试用例在执行时返回false

时间:2018-07-06 05:12:29

标签: php testcase


我正在尝试求解一种算法,在该算法中,我们输入小于101且大于1的任意数字,并将其显示为两个质数之和。例如:我可以将34表示为:

  • 3 31
  • 5 29
  • 11 23
  • 17 17。

我编写了算法,并且对于每个小于101且大于1的数字也可以正常工作,但是我尝试提交代码的应用程序 Dcoder 运行该代码并返回所有四个测试用例均为 False 。我的代码有什么问题吗,或者是应用程序的问题?
这是所需条件的屏幕截图: Screenshot of the required conditions 这是我提交代码后的结果:

code submission

这是提交后我的得分。所有测试用例均返回负值以响应我的代码:'(

failed test cases

最后是我编写的代码:

                     <?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的代码呈现引擎。我在通过反馈表在电子邮件中进行了简短的讨论之后就知道了。 :)

0 个答案:

没有答案