第四届蓝桥杯A组java--梅森素数
2017-02-09 00:02
309 查看
package The_fourth_session_A;
/*
标题: 梅森素数
如果一个数字的所有真因子之和等于自身,则称它为“完全数”或“完美数”
例如:6 = 1 + 2 + 3
28 = 1 + 2 + 4 + 7 + 14
早在公元前300多年,欧几里得就给出了判定完全数的定理:
若 2^n - 1 是素数,则 2^(n-1) * (2^n - 1) 是完全数。
其中 ^ 表示“乘方”运算,乘方的优先级比四则运算高,例如:2^3 = 8, 2 * 2^3 = 16, 2^3-1 = 7
但人们很快发现,当n很大时,判定一个大数是否为素数到今天也依然是个难题。
因为法国数学家梅森的猜想,我们习惯上把形如:2^n - 1 的素数称为:梅森素数。
截止2013年2月,一共只找到了48个梅森素数。 新近找到的梅森素数太大,以至于难于用一般的编程思路窥其全貌,所以我们把任务的难度降低一点:
1963年,美国伊利诺伊大学为了纪念他们找到的第23个梅森素数 n=11213,在每个寄出的信封上都印上了“2^11213-1 是素数”的字样。
2^11213 - 1 这个数字已经很大(有3000多位),请你编程求出这个素数的十进制表示的最后100位。
答案是一个长度为100的数字串,请通过浏览器直接提交该数字。
注意:不要提交解答过程,或其它辅助说明类的内容。
*/
import java.math.*;
public class MeiShengSuShu
{
public static void main(String[] args)
{
//生成大整数对象
BigInteger bn = new BigInteger("2");
//进入次方循环
for(int i = 1; i < 11213; i++)
{
bn = bn.shiftLeft(1);
}
//将结果减1
BigInteger one = new BigInteger("1");
bn = bn.subtract(one);
//类型转换
String str = bn+"";
//截取最后100位
str = str.substring(str.length()-100);
//输出
System.out.println(str);
}
}
/*
标题: 梅森素数
如果一个数字的所有真因子之和等于自身,则称它为“完全数”或“完美数”
例如:6 = 1 + 2 + 3
28 = 1 + 2 + 4 + 7 + 14
早在公元前300多年,欧几里得就给出了判定完全数的定理:
若 2^n - 1 是素数,则 2^(n-1) * (2^n - 1) 是完全数。
其中 ^ 表示“乘方”运算,乘方的优先级比四则运算高,例如:2^3 = 8, 2 * 2^3 = 16, 2^3-1 = 7
但人们很快发现,当n很大时,判定一个大数是否为素数到今天也依然是个难题。
因为法国数学家梅森的猜想,我们习惯上把形如:2^n - 1 的素数称为:梅森素数。
截止2013年2月,一共只找到了48个梅森素数。 新近找到的梅森素数太大,以至于难于用一般的编程思路窥其全貌,所以我们把任务的难度降低一点:
1963年,美国伊利诺伊大学为了纪念他们找到的第23个梅森素数 n=11213,在每个寄出的信封上都印上了“2^11213-1 是素数”的字样。
2^11213 - 1 这个数字已经很大(有3000多位),请你编程求出这个素数的十进制表示的最后100位。
答案是一个长度为100的数字串,请通过浏览器直接提交该数字。
注意:不要提交解答过程,或其它辅助说明类的内容。
*/
import java.math.*;
public class MeiShengSuShu
{
public static void main(String[] args)
{
//生成大整数对象
BigInteger bn = new BigInteger("2");
//进入次方循环
for(int i = 1; i < 11213; i++)
{
bn = bn.shiftLeft(1);
}
//将结果减1
BigInteger one = new BigInteger("1");
bn = bn.subtract(one);
//类型转换
String str = bn+"";
//截取最后100位
str = str.substring(str.length()-100);
//输出
System.out.println(str);
}
}
相关文章推荐
- 2013第四届蓝桥杯 02 组素数(java)
- 马虎的算式——第四届蓝桥杯选拔赛java B组
- 第四届蓝桥杯JAVA本科B(世纪末的星期)
- 第四届蓝桥杯B组java--黄金连分数
- 2013年第四届蓝桥杯试题(Java本科B组)
- 第四届蓝桥杯 省赛 JavaB组 振兴中华
- 圆周率,孪生素数,反转串,最近距离,基因牛,迷宫问题(2011年蓝桥杯预赛java本科组试题)
- 算法笔记_110:第四届蓝桥杯软件类省赛真题(JAVA软件开发高职高专组部分习题)试题解答
- 第五届“蓝桥杯”全国软件校内选拔赛试题(Java组)1、素数问题
- Java高职蓝桥杯校内选拔题素数问题
- 算法笔记_108:第四届蓝桥杯软件类省赛真题(JAVA软件开发本科A组)试题解答
- 黄金连分数 -第四届蓝桥杯java B组
- 蓝桥杯 找素数 Java
- 2013蓝桥杯预赛之梅森素数
- 第四届蓝桥杯B组java--马虎的算式
- 振兴中华_第四届蓝桥杯选拔赛java B组
- 2013第四届蓝桥杯决赛Java高职高专组题目以及解法答案
- 第四届蓝桥杯决赛题-九宫重排(双向广搜).java
- 第四届蓝桥杯 省赛 JavaB组 世纪末的星期
- 算法笔记_109:第四届蓝桥杯软件类省赛真题(JAVA软件开发本科B组部分习题)试题解答