简体   繁体   English

检查 PHP 中的素数时遇到问题

[英]Encounter issues when checking prime number in PHP

<?php
   if (isset($_GET['number'])){ // Loaded for first time?
       if(isValid($_GET['number'])){    
          $isPrime = true;
          // Please enter code here

          // I have tried the codes here but idk why it cannot seem to work 
          $i = $_GET(['number']);
          if ($number == 1) {
            $isPrime = false;
            return $isPrime;
         }
         for ($j = 2; $i <= $number/2; $i++){ 
            if ($number % $i == 0) 
            $isPrime = false;
            return $isPrime;
        } 
        return $isPrime; 

        // End of code

        if ($isPrime) {      
            echo "<p>".$i." is a prime number!</p>";        
        } else {
            echo "<p>".$i." is not prime.</p>";
        } 
        
    } else{
        // User submitted something which is not a positive whole number 
        echo "<p>Please enter a positive whole number.</p>";    
    }
 }

// check if the given number is a valid numeric value
// round() rounds a floating point value
 function isValid($number) {
    if(is_numeric($number) && $number > 0
            && $number == round($number, 0)) {
         return true;
   } 
   else {
       return false;
   }
 }
?>

I have tried the above codes, however, I have encountered issues.我已经尝试了上面的代码,但是我遇到了问题。 Please help me out thank you!请帮帮我谢谢! The codes I have tried are within the // Please enter code here to // End of code我尝试过的代码在 // Please enter code here to // End of code

在此处输入图像描述

When I run the php file the above image will be shown.当我运行 php 文件时,将显示上图。 The user have to type a number and it will check whether or not the user input is a prime number when user clicks on the "Go."用户必须输入一个数字,当用户点击“Go”时,它将检查用户输入的是否是质数。 button.按钮。

You had many mistakes.你有很多错误。 So I edited the whole code.所以我编辑了整个代码。

here it is:这里是:

<?php
if (isset($_GET['number'])) { // Loaded for first time?
    if (isValid($_GET['number'])) {
        $isPrime = true;
        // Please enter code here
        
        // I have tried the codes here but idk why it cannot seem to work
        $i = $_GET['number'];
        if ($i == 1) {
            $isPrime = false;
        }
        
        for ($j = 2; $j <= $i / 2; $j++) {
            if ($i % $j == 0)
                $isPrime = false;
        }
        
        // End of code
        
        if ($isPrime) {
            echo "<p>" . $i . " is a prime number!</p>";
        } else {
            echo "<p>" . $i . " is not prime.</p>";
        }
        
    } else {
        // User submitted something which is not a positive whole number
        echo "<p>Please enter a positive whole number.</p>";
    }
}

// check if the given number is a valid numeric value
// round() rounds a floating point value
function isValid($number)
{
    if (is_numeric($number) && $number > 0
        && $number == round($number)) {
        return true;
    } else {
        return false;
    }
}

?>

<form action="index.php" method="get">
    <input type="number" name="number">
    <input type="submit" value="Go!">
</form>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM