蓝桥杯:梅森素数

分析:

题目应该说明了这个数字是3000位,肯定要使用大数(BigInteger)来运算,先求它的11213次方,然后-1,最后转换成字符串输出最后100位就行。

        不熟悉BigInteger的可以看一下:

        棋盘放麦子 

Java:

import java.math.BigInteger;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
        BigInteger n = new BigInteger("2");
        //2的11213次方
        n = n.pow(11213);
        //2的11213次方-1
        n = n.subtract(new BigInteger("1"));
        String str = n.toString();
        //输出这个字符串的最后100位
        for(int i = str.length()-100;i<str.length();i++){
          System.out.print(str.charAt(i));
        }
    }
}

答案是:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值