Java 改进素数代码的建议?
我写了一个关于素数的代码,并将听取您的意见或任何关于如何改进代码的建议。我是Java的初学者Java 改进素数代码的建议?,java,Java,我写了一个关于素数的代码,并将听取您的意见或任何关于如何改进代码的建议。我是Java的初学者 public static void main(String[] args) { Scanner s = new Scanner(System.in); boolean a; System.out.println("Please enter a number: "); int zahl = s.nextInt(); if(zahl <= 0) {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
boolean a;
System.out.println("Please enter a number: ");
int zahl = s.nextInt();
if(zahl <= 0) {
System.out.println("Please enter a positive number without zero.");
return;
}
a = true;
for (int i = 2; i < zahl; i++) {
if (zahl % i == 0) {
a = false;
}
}
if (a == true) {
System.out.println("Is Prim");
}
if (a==false){
System.out.println("Not a prim");
}
}
publicstaticvoidmain(字符串[]args){
扫描仪s=新的扫描仪(System.in);
布尔a;
System.out.println(“请输入一个数字:”);
int zahl=s.nextInt();
如果(zahl一些提示:
是吗
System.out.println("Please enter a positive number without zero.");
return;
println建议用户可以输入一个新值,但不能,在这种情况下,最好说该数字无效,所以退出
当您执行a=false;
时,继续下去是没有用的,a不可能恢复为true
试图除以超过sqrt的数字是没有用的
有必要尝试除以2,但不能除以其他偶数,因此将2添加到i,而不是1
如果If(a==true)
false,则检查If(a==false)
一些提示是无用的:
是吗
System.out.println("Please enter a positive number without zero.");
return;
println建议用户可以输入一个新值,但不能,在这种情况下,最好说该数字无效,所以退出
当您执行a=false;
时,继续下去是没有用的,a不可能恢复为true
试图除以超过sqrt的数字是没有用的
有必要尝试除以2,但不能除以其他偶数,因此将2添加到i,而不是1
如果If(a==true)
false检查If(a==false)
最简单的方法是
而不是
for (int i = 2; i < zahl; i++) {
if (zahl % i == 0) {
a = false;
}
}
这是使用三元运算符?:最简单的方法是
而不是
for (int i = 2; i < zahl; i++) {
if (zahl % i == 0) {
a = false;
}
}
这是使用三元运算符?:您的代码很好。我做了三个小改进:
- 输入会立即(而不仅仅是在输入错误之后)请求
正整数
- 重复输入直到正确
- for循环只运行到sqrt(zahl),这就足够了
publicstaticvoidmain(字符串[]args){
扫描仪s=新的扫描仪(System.in);
布尔a;
int-zahl=0;
(zahl您的代码很好。我做了三个小改进:
- 输入会立即(而不仅仅是在输入错误之后)请求
正整数
- 重复输入直到正确
- for循环只运行到sqrt(zahl),这就足够了
publicstaticvoidmain(字符串[]args){
扫描仪s=新的扫描仪(System.in);
布尔a;
int-zahl=0;
while(zahl)向下滚动到isPrime()
。这很好,我想你可以删除第二个if条件,在循环内打印not prime并打破循环。我试过你说的。但它总是输出:is prime。我不知道为什么。向下滚动到isPrime()
。这很好,我想你可以删除第二个if条件,在循环内打印not prime并打破这个循环。我试过你说的。但它总是输出:is prime。我不知道为什么。
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
boolean a;
int zahl = 0;
while (zahl <= 0) {
System.out.println("Please enter a positive int without zero.");
zahl = s.nextInt();
}
a = true;
for (int i = 2; i <= Math.sqrt(zahl); i++) {
if (zahl % i == 0) {
a = false;
break;
}
}
if (a == true) {
System.out.println("Is Prim");
} else {
System.out.println("Not a prim");
}
}