请有人解释一下这是如何运作的?我不理解的代码行标记在代码中。
import java.util.Scanner;
class PrimeCheck
{
public static void main(String args[])
{
boolean isPrime=true;
Scanner scan= new Scanner(System.in);
System.out.println("Enter any number:");
int num=scan.nextInt();
scan.close();
for(int i=2;i<num;i++)
{
if(num%i==0) // I don't understand this part!
{
isPrime=false; // I don't understand this part!
break;
}
}
if(isPrime)
System.out.println(num + " is a Prime Number");
else
System.out.println(num + " is not a Prime Number");
}
}
答案 0 :(得分:1)
您可以尝试以下代码。这应该向您展示%(modulo)运算符的工作原理。 简而言之,它将参数除以2并告诉您剩余部分。
a = 2
isEven = (a % 2) == 0;
2除以2为1,给出0休息。由于0 == 0,数字偶数!
a = 5
isEven = (a % 2) == 0;
5除以2是2并且有1个休息。 1不等于0,因此数字不均匀。
答案 1 :(得分:0)
请检查https://www.tutorialspoint.com/computer_programming/computer_programming_operators.htm
中%运算符的解释简而言之,程序将输入数字除以2中的所有数字到数字-1,如果它可以被该数字整除,则将isPrime设置为false(因为素数的定义)
答案 2 :(得分:0)
首先,模数运算符的作用是找到余数。
for ex - &gt; 5%2 = 1(余数)
如果数字只能被1和它自己(那个数字)整除,那么数字就是素数。
for ex - 2,3,5,7 .....这些只能被1和他们自己整除。
在你的程序中,1可以被所有数字整除,所以i = 2。 对于素数检查,我们在这里检查这个数字是否可以被任何其他数字整除。如果它可以被任何其他数字整除,那么&#34; isPrime&#34; flag变为&#34; false&#34;因为休息是控制来自循环。
然后检查&#34; isPrime&#34;那么它是一个&#34;素数&#34; 否则&#34;不是PRIME&#34;。