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 {
}
}