创建一个以位为单位生成给定大小的素数的方法

时间:2015-04-02 00:27:55

标签: java primes

我需要创建一个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.
    }
}

1 个答案:

答案 0 :(得分:1)

这个问题有两个部分。 1)生成给定位大小的数字。 2)检查刚刚生成的数字是否为素数。编写代码分别完成每个部分。回到这里回答一下,你无法让你的部分代码正常工作。

相关问题