求一定范围内的质数

import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;

public class Main extends MIDlet {

	public Main() {
		System.out.println(prime(100000));
	}

	// 什么是约数?
	// 整数A能被整数B整除,A叫做B的倍数,B就叫做A的约数(现在新教材叫因数)
	// 什么是质数,合数,约数?
	// “素数”,又称“质数”,是指:
	// 除1和其自身之外,没有其它约数的正整数
	// 如 2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,...
	// 2是最小的质数,也是唯一的偶质数
	// 质数有无数多个
	// 与素数相对的,有“合数”:
	// 除1和其自身之外,仍有其它约数的正整数
	// 规定:1和0既不是质数,也不是合数
	// 一个数除了1和它本身不再有别的约数,
	// 这样的数叫做质数,也叫素数。20以内
	// 的质数有:2、3、5、7、11、13、17、19
	// 一个数除了1和它本身还有别的约数,这样
	// 的数叫做合数。1和0不是质数也不是合数。20
	// 以内的合数有:4、6、8、9、10、12、14、15、16、18、20。
	// 数a能被数b整除,a就是b的倍数,b就是a的约数。例如:15÷5=3,
	// 那么15是5的倍数,5是15的约数。约数与倍数是相互的,
	// 不能单独说15是倍数,5是约数。在讨论质数、合数、约数、
	// 倍数都指自然数(0除外)。
	public int prime(int num) {// 能求无限大的质数//但如果所求的范围太大,计算的时间需要很久
		long is = System.currentTimeMillis();
		int n, m, i = 0;
		label1: for (n = 2; n <= num; n++) {
			for (m = 2; m <= n / 2; m++) {
				if (n % m == 0)
					continue label1;
			}
			i++;
			// System.out.println("第" + i + "个素数是:" + n);
		}
		long ie = System.currentTimeMillis();
		System.out.println("time=" + (ie - is));
		return i;
	}

	protected void destroyApp(boolean arg0) throws MIDletStateChangeException {

	}

	protected void pauseApp() {

	}

	protected void startApp() throws MIDletStateChangeException {

	}

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值