-1
我需要创建一个Java方法,它接受一个参数(一个数字)并生成该位数的素数。创建一个生成给定大小的素数的方法
输出示例:
$ primegenerate(1024)
$ 142405175064861448442669284843420489603593930617313976674095914073492903976984848373315014340583589674334422581561784146805278310143147937016874549483037286357105260324082207009125626858996989027805604841776344359158053673248019204338406280932000275573354237039522117150476778214733739382939035838341675795443
我的问题是试图在没有内置类使用任何Java实现代码。不知道从哪里开始。如果有人能指出我正确的方向,将不胜感激。
我能够转换使用BigInt检查常规素数的方法。现在我需要产生一些比特,如1024比特的素数。我只需要你们指点我的方向,这也是我研究的一部分。
import java.math.*;
public class Prime {
public boolean primeCheck(BigInteger n) //My BigInteger version , returns true if number is Prime, false if not
{
if (n.intValue()==2) //case n =2, function returns true.
{
return true;
}
for (int i=2;i<=(int)Math.sqrt(n.intValue())+1;i++) //loops through 2 to sqrt(n).
{
if (n.intValue()%i==0) //if a divisor is found, its not prime. returns false
{
return false;
}
}
return true; //if all cases are not divisible by n, it is prime.
}
}
@ErwinBolwidt检查我的编辑 – dogbern 2015-04-07 17:47:40
一旦你检查了整除之后,你只需要检查奇数。这将会(几乎)减少你必须做的检查次数。如果您仔细考虑,可以扩展这种见解。 – rossum 2015-04-10 15:43:29