|
| 问题描述 |
|
我们知道,任何一个分数 p/q
(p,q∈N)都可写成一个循环小数,且其循环节长度必小于q,
故最少求 2q 位即可.
为研究其小数部分的规律,要求编一程序求出 p/q
小数点后足够多的位数.
输入格式:文件中包含二个整数
p q (1 <= p < q < 105)
|
输出格式: |
第一行:求
p/q 循环节可能的所需长度a.顶格输出. |
|
|
第2-?行:a
位 p/q 每100位一行无间隔,不输出小数点.最后一行不需填满.
|
|
|
|
| 隔日习题汇集 |
| 问题描述 (源自
NOIP 2003 第四题 有删改)参考答案 |
|
|
形如
2P-1 (2的P次方减一)的素数称为麦森数,这时 P 一定也是素数.
但反过来不一定,即如果 P 是个素数.
2P-1 不一定也是素数. 到今天(2004年),人们已找到40个麦森数,第41个也正在验算中。已确切知道的一个最大的是
P=20996011 ,它有6320430位。麦森数与完数密切相关.
任务:从文件中输入P(1<P<2e7),计算
2P-1 的最后 500 位数.(十进制表示)
输入格式:文件中只包含一个整数
P (1<P<2e7)
|
输出格式: |
第一行:十进制高精度数
2P-1 的位数. |
|
第2-11行:十进制高精度数 2P-1
的最后
500 位数.(每行输出50位,共输出10行,不足500位时高位补
0 ) |
不必验证
2P-1 与 P
是否素数. |
| 输入样例1 |
|
1279 |
| 输出样例1 |
|
386
00000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000
00000000000000104079321946643990819252403273640855
38615262247266704805319112350403608059673360298012
23944173232418484242161395428100779138356624832346
49081399066056773207629241295093892203457731833496
61583550472959420547689811211693677147548478866962
50138443826029173234888531116082853841658502825560
46662248318909188018470682222031405210266984354887
32958028878050869736186900714720710555703168729087 |
| 输入样例2 |
|
2203 |
| 输出样例2 |
|
664
01113430156902396093989090226259326935025281409614
98349938822283144859860183431853623092377264139020
94902318364468996082107954829637630942366309454108
32793769905399982457186322944729636418890623372171
72374210563644036821845964963294853869690587265048
69144346374575072804418236768135178520993486608471
72579408422316678097670224011990280170474894487426
92474210882353680848507250224051945258754287534997
65585726702296339625752126374778977855015526465226
09988869914013540483809865681250419497686697771007 |
|
算法参见高精度求乘幂 |
|
|
|
Last update 6/26/2004 |