本文介绍了使用java打印一系列素数的程序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

此代码用于打印质量序列达到给定限制,但当我尝试执行此操作时,它会进入无限循环。

This code is to print the series of prime number up to given limit but when I am trying to execute this,it goes into infinite loop.

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++;
        }
    }
}


推荐答案

问题是num的值在循环开始时总是2,即使你再次说 num ++ 它需要 num = 2 这是start语句,并且不会进入for循环,因此无限循环。这将工作

Problem is value of num is always 2 at the start of loop,even if you say num++ again it takes num=2 which is start statement and wont enter into for loop ever,hence so infinite loop.This will Work

int num=2;
while(count!=n)  {
   for(int i=2;i<num;i++) {
     if(num%i==0) {
          count++;
          break;
     }
   }
   num++;
}

这篇关于使用java打印一系列素数的程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-17 20:59
查看更多