求一个范围内的素数的问题。

package text;
import java.util.Scanner;

public class test {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int x;
        x = in.nextInt();  
        boolean isprime = true;  
       
        for (int i = 2; i <= x; i++) {
            for(int j = 2; j < i; j++) {
                if(i % j == 0) {
                    isprime = false;
                    break;
                }
            }
            if(isprime)  System.out.print(i + " ");  
            isprime = true; //这里为什么一定要重新赋值true?不赋值为什么没有运行结果?
        }
    }
}
阅读 2.7k
1 个回答

isprime 变量你可以看成是一个标志,程序中是根据isprime的最后取值来决定是否打印i.至于你问的为什么重新赋值,这是为了下一轮的循环做准备呀。倘若不初始化isprime的值为true,之后即便i为素数也无法打印i。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题