输出100以内的质数

解法一:最普通解法

class PrimeNumberTest1 {
    
    
	public static void main(String[] args) {
    
    
		boolean isPrime = true;

		for (int i = 2; i <= 100; i++) {
    
    
			for (int j = 2; j < i; j++) {
    
     // 寻找是否有因子能整除
				if (i % j == 0) {
    
    
					isPrime = false;
					break; // 注意有break,更快
				}
			}
			if (isPrime) {
    
    
				System.out.println(i);
			}
			isPrime = true;
		}
	}
}

解法二:减少查找次数

class PrimeNumberTest2 {
    
    
	public static void main(String[] args) {
    
    
		boolean isPrime = true;

		for (int i = 2; i <= 100; i++) {
    
    
			for (int j = 2; j <= Math.sqrt(i); j++) {
    
     // 优化
				if (i % j == 0) {
    
    
					isPrime = false;
					break;
				}
			}
			if (isPrime) {
    
    
				System.out.println(i);
			}
			isPrime = true;
		}
	}
}

简写解法二

class PrimeNumberTest3 {
    
    
	public static void main(String[] args) {
    
    
		label: for (int i = 2; i <= 100; i++) {
    
    
			for (int j = 2; j <= Math.sqrt(i); j++) {
    
     // 优化
				if (i % j == 0) {
    
    
					continue label; // 不是质数,判断写一个数
				}
			}
			System.out.println(i); // 是质数,输出
		}
	}
}

猜你喜欢

转载自blog.csdn.net/weixin_36389889/article/details/101081944