public class PrimeGenerator {
int a[] = null;
static int m = -1; public PrimeGenerator(int max) {
int n = 0;
for (int i = 2; i <= max; i++) {
if (isPrime(i)) {
this.a[n] = i;
}
else
continue; } } public boolean hasNextPrime() {
if (m + 1 < a.length) {
return true;
} else
return false;
} public int nextPrime() {
m++;
if(m < a.length) return a[m];
else
return -1; } private boolean isPrime(int p) {
if (p == 1)
return false; int factor = p - 1;
while (factor > 1) {
if ((p % factor) == 0) {
return false;
}
factor--;
} return true;
}
}为什么在执行this.a[n] = i;的时候 报错.java.lang.NullPointerException
另:我感觉我的程序写复杂了...怎么写最简单. 一共2个方法. consturestor 用户输入max 取 2 到max 中的素数, 第一个方法.public boolean hasNextPrime() 如果有下一个素数返回 ture 没有 false , 第二个public int nextPrime() 取下一个素数 如果没有 返回-1.
多谢!!!!
int a[] = null;
static int m = -1; public PrimeGenerator(int max) {
int n = 0;
for (int i = 2; i <= max; i++) {
if (isPrime(i)) {
this.a[n] = i;
}
else
continue; } } public boolean hasNextPrime() {
if (m + 1 < a.length) {
return true;
} else
return false;
} public int nextPrime() {
m++;
if(m < a.length) return a[m];
else
return -1; } private boolean isPrime(int p) {
if (p == 1)
return false; int factor = p - 1;
while (factor > 1) {
if ((p % factor) == 0) {
return false;
}
factor--;
} return true;
}
}为什么在执行this.a[n] = i;的时候 报错.java.lang.NullPointerException
另:我感觉我的程序写复杂了...怎么写最简单. 一共2个方法. consturestor 用户输入max 取 2 到max 中的素数, 第一个方法.public boolean hasNextPrime() 如果有下一个素数返回 ture 没有 false , 第二个public int nextPrime() 取下一个素数 如果没有 返回-1.
多谢!!!!
解决方案 »
- java 类继承区别问题
- 谁能给我讲解一下 Cloneable到底是什么接口呢?clone到底是什么呢
- 请问如何在java窗体中创建一个web浏览器视图?
- 关于有异常throw的时候如何处理return的问题
- 高分请教一个向上转型的问题
- java数据库数据查询优劣问题
- 求教,一个"项目管理"的项目.有建议给分!
- 请问怎么使JTextArea或JEditorPane在显示的视图内自动换行?
- 一个类的方法声明为protected,那么在另一个包中的该类的子类能否访问该方法?
- 请给我一个APPLET关于键盘事件public void keyPressed(KeyEvent evt)的例子
- Java基础题
- 一道中兴的笔试题
public class PrimeGenerator {
int a[] =new int[100000];//创建一个足够大的数组,存放素数static int m = -1;public PrimeGenerator(int max) {int n = 0;
for (int i = 2; i <= max; i++) {
if (isPrime(i)) {
this.a[n] = i;
n++;//如果是素数,数组的小标加一
}
else
continue;}
int getPrime(int n){//返回下标为n的素数,其他的hasnextprime 和nextprime去掉吧
if(n>=a.length){
return -1;
}
else
return a[n];
}
if(n>=a.length||a<=0){
return -1;
}
else
return a[n];
}
靠..你猛~!
你随便定一个长度试试看