输出100以内的质数 java

java输出100以内的质数

class Ab{
	public static void main(String[] args){
		boolean isFlag = true;	//标识i是否能被j除尽,一旦除尽,修改其值。
		for (int i = 2;i <= 100; i++){	//遍历100以内的自然数
			for(int j = i-1; j>1; j--){		//j:被i去除
				if(i % j == 0){		//i被j除尽
					isFlag = false;}
			}
			if(isFlag == true){
			System.out.println(i + "是质数");
			}
		//重置isFlag
		isFlag = true;
		}
	}
}

或者是这样

class Ab{
	public static void main(String[] args){
		
		for (int i = 2;i <= 100; i++){	//遍历100以内的自然数
			boolean isFlag = true;	//标识i是否能被j除尽,一旦除尽,修改其值。
			for(int j = i-1; j>1; j--){		//j:被i去除
				if(i % j == 0){		//i被j除尽
					isFlag = false;}
			}
			if(isFlag == true){
			System.out.println(i + "是质数");
			}
		//重置isFlag
		//isFlag = true;
		}
	}
}

优化方式3:

class Ab{	//求100以内的质数
	public static void main(String[] args){
		long start = System.currentTimeMillis();
		for (int i = 2;i <= 10000; i++){	//遍历100以内的自然数
			boolean isFlag = true;	//标识i是否能被j除尽,一旦除尽,修改其值。
			//优化判断,j不要从i-1到1,可以从j-1到sqrt(i)
			for(int j = i-1; j>= Math.sqrt(i); j--){		//j:被i去除
				if(i % j == 0){		//i被j除尽
					isFlag = false;
					break;  //优化,对非质数只要进行一次判断即可
					}
			}

			if(isFlag == true){
			System.out.println(i + "是质数");
			}
		//重置isFlag
		//isFlag = true;
		}
		long end = System.currentTimeMillis();
		System.out.print("程序检索所有质数花费的时间:" + (end - start));
	}
}

方法四:

class Ac{	//求100以内的质数
	public static void main(String[] args){
		long start = System.currentTimeMillis();
		int count = 0;
		label:for (int i = 2;i <= 10000; i++){	//遍历100以内的自然数
			
			//优化判断,j不要从i-1到1,可以从j-1到sqrt(i)
			for(int j = i-1; j>= Math.sqrt(i); j--){		//j:被i去除
				if(i % j == 0){		//i被j除尽
					continue label;
					}
			}
				//能执行到此步骤,都是质数
				count++;
		}
		long end = System.currentTimeMillis();
		System.out.println("质数的个数为:" + count);
		System.out.print("程序检索所有质数花费的时间:" + (end - start));
	}
}

输出100以内的质数 java_第1张图片

你可能感兴趣的:(JAVA,java)