java经典算法_002判断素数

素数即只能被1和其本身整除的数,判断n是否为素数只需用2~n/2之间的数去除就可以了。因为一个数的一
半的平方大于其本身是从5开始的,解方程:n/2的平方>n 。即一个数n的两个因数不能同时比n/2大。就可

以说一个数若不是素数则一定在2~n/2之间有因数。而且2,3也是符合下面程序的。

package com.wzs;

// 题目:判断101-200之间有多少个素数,并输出所有素数。   
// 程序分析:判断素数的方法:用一个数分别去除2到x/2(这个数),如果能被整除,   
// 则表明此数不是素数,反之是素数。   

// 质数又称素数。指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数。
// 素数在数论中有着很重要的地位。比1大但不是素数的数称为合数。1和0既非素数也非合数。
public class Test_wzs2 {
	public static void main(String[] args) {
		// 统计输出素数个数
		for (int i = 1; i < 200; i++) {
			if (Test_wzs2.f(i)) {
				System.out.print(i + ",");
			}
		}
	}

	/**
	 * 判断一个数是否为素数
	 * 
	 * @param x
	 *            判断的数字
	 * @return true 是,false不是
	 */
	public static boolean f(int x) {
		if (x < 2) {
			System.out.println("请输入大于2的数字.");
			return false;
		}
		for (int i = 2; i <= x / 2; i++) {
			if (x % i == 0) {
				return false;

			}
		}
		return true;
	}
}

输出结果:

请输入大于2的数字.
2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值