此代码是将素数系列打印到给定的限制,但是当我尝试执行此操作时,它将陷入无限循环。
import java.io.*;
class a
{
public static void main(String s[]) throws IOException
{
int count=1;
String st;
System.out.println("how many prime no. do you want");
BufferedReader obj= new BufferedReader (new InputStreamReader (System.in));
st=obj.readLine();
int n=Integer.parseInt(st);
while(count!=n)
{
int num=2;
for(int i=2;i<num;i++)
{
if(num%i==0)
{
count++;
break;
}
}
num++;
}
}
}
最佳答案
循环使用USe isPrime(int num)方法生成质数示例如下代码所示
public class PrimeNumbersSeries
{
public boolean isPrime(int num)
{
boolean flag=true;
for(int i=2; i<=num/2; i++)
{
if(num%i==0)
{
flag=false;
}
else
{
flag=true;
}
}
if(num<=1)
{
flag=false;
}
return flag;
}
public static void main(String []args)
{
System.out.println("how many prime no. do you want");
PrimeNumbersSeries prime=new PrimeNumbersSeries();
Scanner sc=new Scanner(System.in);
int num=sc.nextInt();
int count =0;
int j=1;
while(count!=num)
{
if(prime.isPrime(j))
{
System.out.print(j+", ");
count++;
}
j++;
}
}
}
关于java - 程序使用Java打印素数系列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32664939/