Mathematics & Programme

隔日习题
返回主页

问题描述

   我们知道,任何一个分数 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

 

交流:  留言本 or xyy82148@163.com