算法--打印素数--死记硬背也要牢记

本文介绍了一种使用循环结构来判断并输出3到100之间所有素数的方法。通过对外层循环中每个数进行内层循环验证,检查其是否能被2到该数一半之间的任何数整除,以此确定该数是否为素数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

求素数:只能被1和他本身整除的数叫做素数

求解思路,用循环方法验证从2~n-1这些数能不能被n整除,如果能就不是素数,如果不能就是素数

但是不需要验证到n-1  ,只需要验证到n/2  因为超过这个数的一半,就肯定不能被整除了,节约了循环次数



求3~100之间的素数



package alg3yue6;

public class PrimeNumble {
	public static void main(String[] args)
	{
		
		
		//定义一个标记 ,是素数标记true 不是素数标记false
		boolean sign ;
		//记录打印素数的个数
		int iCount = 0;
		
		
		
		
		//外层循环是取出每个要验证的数
		for(int i = 3 ; i<= 100 ; i++)
		{
			//必须在这里没循环一个数标记一次,默认都是素数,但是判断出来某个数不是素数,就拉黑筛选掉
			sign =true;
			//内层循环是取出除了1和他本身的数字,验证能不能被这个n整除
			for(int j = 2; j<=i/2; j++)
			{
				//如果其中一个除数能整除i ,sign标记为false ,内层循环退出 ,开始执行外层循环验证下一个数字
				
				//说明不是素数,标记改成false
				if(i%j==0)
				{
					sign = false;
					//退出本次内层循环,外层循环体内代码继续往下面执行
					break;
			    }
				
			}
			
			
			
			
			//如果标记是true,说明是素数,打印出来
			if(sign)
			{
				System.out.print(i+" ");
				//打印一个就加一下,++可以用在任何地方,不单单是循环
				iCount++;
				//打印完6个就换行
				if(iCount%6 == 0)
				{
					System.out.println();
				}
				
			}
			
			
			/*
			 * 如果换行循环放在这里,即使不是素数,也打印换行了,会有很多空格
			if(iCount%6 == 0)
			{
				System.out.println();
			}*/
			
			
			
			
		}
		
	}

}

思路图


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值