此代码是将素数系列打印到给定的限制,但是当我尝试执行此操作时,它将陷入无限循环。

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/

10-17 01:16