#16219. 超能量素数

    ID: 16219 Type: Default 1000ms 125MiB Tried: 25 Accepted: 1 Difficulty: 10 Uploaded By: Tags>NOIP全国联赛普及组-2003年NOIP全国联赛普及组 一本通 一本通2018-第七章-分治算法

超能量素数

超能量素数

背景故事

在这个未来科技研究所中,科学家们正在寻找一种新型的加密算法,而麦森超能量素数正是其核心。在实验中,他们需要高效地计算这些数的位数和部分数字。你的任务是为他们设计一个程序,帮助他们完成计算!

说明

在一个未来科技研究所中,科学家们正在研究一种被称为“超能量素数”的数学概念。这种数的形式是 2P1 2^P - 1 ,其中 P P 是一个素数。如果 2P1 2^P - 1 也是一个素数,那么它就被称为“麦森超能量素数”。然而,并非所有的 P P 都能产生麦森超能量素数。

研究发现,这种数在密码学、随机数生成等领域有重要应用。科学家们希望从一个给定的 P P 值(满足 1000<P<3100000 1000 < P < 3100000 )中计算出对应的 2P1 2^P - 1 的以下信息:

  1. 它的位数。
  2. 它的最后 500 位数字(以十进制表示,高精度计算)。

请协助科学家完成这一任务。


输入格式

输入仅包含一个整数 P P ,满足 1000<P<3100000 1000 < P < 3100000


输出格式

  • 第一行:输出 2P1 2^P - 1 的十进制表示的位数。
  • 接下来的 10 行:输出 2P1 2^P - 1 的最后 500 位数字(十进制表示)。每行输出 50 位,总共输出 10 行。如果最后不足 500 位,高位用 0 补齐。

样例

输入

1279

输出

386
00000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000
00000000000000104079321946643990819252403273640855
38615262247266704805319112350403608059673360298012
23944173232418484242161395428100779138356624832346
49081399066056773207629241295093892203457731833496
61583550472959420547689811211693677147548478866962
50138443826029173234888531116082853841658502825560
46662248318909188018470682222031405210266984354887
32958028878050869736186900714720710555703168729087