Java 嵌套循环素检查器
这是我的代码,我对任何编程方式都有点陌生。程序的目标是输出0和用户输入值之间的所有素数,每一个都在自己的行上Java 嵌套循环素检查器,java,for-loop,nested,primes,Java,For Loop,Nested,Primes,这是我的代码,我对任何编程方式都有点陌生。程序的目标是输出0和用户输入值之间的所有素数,每一个都在自己的行上 import java.util.Scanner; import java.math.*; public class Sforprime{ public static void main (String[] args){ double box = 0; double boxxx = 0; int po = 0; int blub = 0;
import java.util.Scanner;
import java.math.*;
public class Sforprime{
public static void main (String[] args){
double box = 0;
double boxxx = 0;
int po = 0;
int blub = 0;
int no = 1;
Scanner scan = new Scanner (System.in);
System.out.println("input cieling number");
box = scan.nextInt();
boxxx = Math.sqrt(box);
for (int batman = (int)box; batman >= 0; batman--){
if (no == 1){
no = 0;
}
else if (po == 0){
System.out.println(blub);
po = 0;
}
blub = batman;
for (int mot = (int)boxxx; mot >= 2; mot--){
if (po == 1 ){
}
else if (box%mot == 0){
po++;
}
}
if (po == 0){
System.out.println(blub);
}
}
}
}
结果是,在你输入数字后,它什么也没做。我做错了什么 您可以使用以下逻辑:
int n,p;
Scanner s=new Scanner(System.in);
System.out.println(“Enter required number upto which prime numbers are needed: ”);
n=s.nextInt();
for(int i=2;i<n;i++)
{
p=0;
for(int j=2;j<i;j++)
{
if(i%j==0)
p=1;
}
if(p==0)
System.out.println(i);
}
intn,p;
扫描仪s=新的扫描仪(System.in);
System.out.println(“输入需要的素数:”);
n=s.nextInt();
对于(int i=2;i,因为您已初始化int mot=(int)boxxx
框%mot将为0,po将始终递增为1,因此永远不会打印。初始化mot=boxxx-1。但建议您使用上述程序,因为它更干净。他们想知道-“我在这里做错了什么?”这是否回答了这个问题?