java BigInteger类的运用

  • 找出所有素数2^p-1(p<=100)
  • long无法实现,采用BigInteger类来实现
  • PS:类的多少个人习惯
import java.math.BigInteger; 
public class mainClass1 {
 	public static void main(String[] args) {
 		// TODO 自动生成的方法存根		
 		BigInteger a = new BigInteger("2");	//大数字赋值 a = 2,不能直接	BigInteger a = 2
 		BigInteger b = new BigInteger("1");		
 		for(int i = 2;i <= 100; i++){			
 			a = a.pow(i);	//大整数a = a^i		
 			if(mersenne.isPrime(a.subtract(b))) //大数字a-b				
 				System.out.print(i + " ");		
 		} 	
 	} 
 }  
import java.math.BigInteger;  
public class mersenne {	
	public static boolean isPrime(BigInteger z){ 
		BigInteger m = new BigInteger("2");		
		BigInteger n = new BigInteger("0");		
		for(;z.compareTo(m.multiply(m)) > 0; m.add(n)){	//大数字 (;z > m*m ; m = m+n)		
			BigInteger[] arr=z.divideAndRemainder(m);    //取除数arr[0]和余数arr[1]						
			if(arr[1].compareTo(n) == 0)return false;		
		}		
		return true;	
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值