所以我在研究黎曼假设素数定理,
现在我的循环在isPrimeNumber方法中,循环是可以的,因为我在一个单独的类上测试了它,它运行得很好。primes是我的文本区。我在这里的问题是,当我在我的领域中输入任何数字时,我想要在我的文本区域中附加信息,但是当我输入100时,它给了我1-99的素数,但是现在它给了我10,000个素数--所有素数。任何帮助都将不胜感激。一切都很好。我试过调试,但找不到问题,仍然了解更多关于调试的知识。
public void run() {
int quantity = Integer.parseInt(field.getText());
int primeNumbers = 0;
int allNumbers = 2;
primes.append("This are the Prime Numbers In " + quantity + " Riemann Hypothesis ");
while(primeNumbers<quantity){
if(isPrimeNumber(allNumbers)){
primes.append(allNumbers + " ");
primeNumbers++;
}
allNumbers++;
}发布于 2015-05-31 13:55:00
你的算法现在给出了前100个素数(可以达到541,而不是10000)。如果要将素数从1改为100,则更改
while(primeNumbers<quantity){至
while(allNumbers<quantity){发布于 2015-05-31 13:58:13
您的变量primeNumbers基本上是在计算生成的素数。但是在您的比较中,您可以让primeNumbers<quantity检查生成的素数是否小于数量。所以你的比较应该是allNumbers<quantity。
发布于 2015-05-31 14:01:41
使用代码,如果输入100,则需要查找前100个素数,如果要查找100,则必须将数量与allNumbers进行比较,因此:
while(allNumbers < quantity)如果您这样做,当您达到100,您停止检查号码。
https://stackoverflow.com/questions/30558207
复制相似问题