输出100以内的质数

质数(素数):一个大于1的自然数,除了1和它本身外,不能被其他自然数整除的数就叫做质数。

最小的质数是 2。
规律:从 2 开始,到这个数 减 1 结束为止

1.方式一:最普通的做法

/*
	实现方式一
*/

class PrimeNumberTest1 {
	public static void main(String[] args) {
		// 标记,用来标识其是否是质数
		boolean flag = true;
		
		//遍历 100 以内的自然数
		for(int i = 2; i <= 100; i++ ){
			for(int j = 2; j <= i - 1; j++ ){
				// 判断是否可以被自然数整除
				if (i % j == 0){
					// 不是质数
					flag = false;
				}
			}
			// 如果标记还为true,说明其是质数
			if (flag){
				System.out.println(i + "是质数");
			}

			// 切记:要将重置标记,如果不重置标记,标记一直为false,即使是质数,也无法走到
			// flag == true 的if语句
			flag = true;
		}
	}
}

2.方式二:使用break关键字,结束内循环。对于本身不是质数的自然数有效果。

/*
	实现方式二:使用break关键字,对于本身不是质数的自然数有效果
*/


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

		for(int i = 2; i <= 100; i++ ){
			for (int j = 2; j <= i - 1; j++ ){
				if (i % j == 0){
					flag = false;
					// 优化方式:加上break语句
					break;
					// i == 4 时--> 4 % 2 == 0--> flag = false、执行break语句结束整个内循环,不再执行 4 % 3 == 0.
				}
			}
			if (flag){
				System.out.println(i + "是质数");
			}
			flag = true;
		}
	}
}

3.方式三:使用开根号的方法:Math.sqrt(参数).根据临界值,减少查询次数。

/*
	方式三:调用开根号的方法:Math.sqrt(参数)。
			根据临界值,减少查找次数。
			对本身是质数的自然数有效果。
			

*/
class PrimeNumberTest3 {
	public static void main(String[] args) {
		boolean flag = true;

		for(int i = 2; i <= 100; i++){
			for(int j = 2; j <=Math.sqrt(i); j++){
				if (i % j == 0){
					flag = false;
				}
			}
			if (flag){
				System.out.println(i + "是质数");
			}
			flag = true;
		}
	}
}

4.方式四:使用带有标签的continue关键字。

/*
	方式四:使用带有标签的continue
		
*/	

class PrimeNumberTest4 {
	public static void main(String[] args) {
		
		A:for (int i = 2; i <= 100; i++ ){
			for (int j = 2; j <= Math.sqrt(i);j++){
				if (i % j == 0){
					continue A;
				}
			}
			System.out.println(i + "是质数");
		}
	}
}

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值