我有一个代码可以检查数字是否为素数。
我希望代码获取用户输入并将其从1分割为他们输入的数字。
如果结果有3个或更多结果,则返回为false。 (素数只能除以1和它本身。)
这是我的代码:
import java.util.Scanner;
public class PrimeNumber {
public static void main (String args[] ) {
int num ;
System.out.print("Enter a number : ");
Scanner sc = new Scanner(System.in);
num = sc.nextInt();
for ( int n=1; num / n; n<num; n++ ){
System.out.print(num + " is an integer. ");
}
}
}
在num / n;
,它不起作用。我希望num
从1开始划分并自行停止并停止。
为什么我不能在for部分内部划分。我理解逻辑,但我不能让那部分工作。
答案 0 :(得分:1)
for
第二个参数必须是布尔条件:for( ; boolean condition; ) {}
第二个参数必须是布尔条件,而不是任何表达式。
在原始帖子中,如果您只是需要编译,请将其调整为num/n>0
。
在当前版本上,要进行编译,只需将其从for
循环中删除即可。
但是如果你需要知道一个数字是否为素数,请检查它:https://www.mkyong.com/java/how-to-determine-a-prime-number-in-java/
答案 1 :(得分:0)
我猜你要做的是
import java.util.Scanner;
public class PrimeNumber {
public static void main (String args[] ) {
int num ;
System.out.print("Enter a number : ");
Scanner sc = new Scanner(System.in);
num = sc.nextInt();
for ( int n=1; n<num; n++ ){
if (num % n == 0)
System.out.print(n + " is an factor. ");
}
}
}
答案 2 :(得分:-1)
我不明白你想做什么,但我想如果你尝试使用另一个有条件的话要好得多。
If(n<num)
{
System.out.println(num + " is an integer. ");
}
else
{
System.out.println("false");
}