编程把1997的倒数化为循环小数,并统计出这个循环小数有多少位.例如:1/7可以化为0.(142857),1/13可化为0.(076923).

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/05 22:42:05
编程把1997的倒数化为循环小数,并统计出这个循环小数有多少位.例如:1/7可以化为0.(142857),1/13可化为0.(076923).

编程把1997的倒数化为循环小数,并统计出这个循环小数有多少位.例如:1/7可以化为0.(142857),1/13可化为0.(076923).
编程把1997的倒数化为循环小数,并统计出这个循环小数有多少位.
例如:1/7可以化为0.(142857),1/13可化为0.(076923).

编程把1997的倒数化为循环小数,并统计出这个循环小数有多少位.例如:1/7可以化为0.(142857),1/13可化为0.(076923).
一个大于1的自然数 N,如果不能在分解质因数后化成:N = 2^p * 5^q (p,q是自然数)的形式,那 N 的倒数 1/N 就是一个混或纯无限循环小数,但其循环节的长度最多只能到 N - 1.这是因为当除数是 N 时,余数只能是 1 到 N - 1,当同一个余数再次出现时,下一个循环就开始了.我们暂且称这样的自然数是 N'.根据这个思路,我们可以编制一段小程序,求出那些比较大的自然数 N' 的倒数的循环节和循环节长度.下面把 1980 到 2010 的倒数情况罗列一下,由于一些倒数的循环节长度比较大,循环节部分没有列出来,但根据你的题目,特把 1997 的倒数的循环节部分列在最后.
倒数____不循环部分____循环节长度
1980____00____________2
1981__________________282
1982____0_____________495
1983__________________220
1984____000504________15
1985____0_____________99
1986____0_____________110
1987__________________331
1988____00____________210
1989__________________48
1990____0_____________99
1991__________________180
1992____000___________41
1993__________________664
1994____0_____________166
1995____0_____________18
1996____00____________498
1997__________________998
1998____0_____________3
1999__________________999
2000_____________________________有限小数(2000 = 2^4 * 5^3)
2001__________________308
2002____0_____________6
2003__________________1001
2004____00____________166
2005____0_____________200
2006____0_____________464
2007__________________222
2008____000___________50
2009__________________210
2010____0_____________33
1997 的倒数是纯循环小数,其循环节长度为:998,其循环节部分是:
00050075112669003505257886830245368052078117175763645468202303455182774161241862794191286930395593390085127691537305958938407611417125688532799198798197295943915873810716074111166750125187781672508763144717075613420130195292939409113670505758637956935403104656985478217325988983475212819228843264897346019028542814221331997996995493239859789684526790185277916875312969454181271907861792689033550325488232348522784176264396594892338507761642463695543314972458688032048072108162243365047571357035553329994992488733099649474211316975463194792188282423635453179769654481722583875813720580871306960440660991487230846269404106159238858287431146720080120180270405608412618928392588883324987481221832749123685528292438657986980470706059088632949424136204306459689534301452178267401101652478718077115673510265398097145718577866800200300450676014021031547320981472208312468703054581872809213820731096644967451176765147721582373560340510766149223835753630445668502754131196795192789183775663495242864296444667
也可以这样考虑:
∵ 自然数n的素数分解中仅当出现素数 2,5 时,才使得n的倒数不再是纯循环小数
∴ 个位不是 5 的奇自然数的倒数,除 1 以外,均是纯循环小数,我们记这样的自然数为 N'
∵ 纯循环小数可以这样编程:N' 除一系列的 9,当余数为零时,9 的个数即为 N' 倒数的循环节长度
又∵ 1997 是素数,属于 N' 一类的数
∴ 可以通过此法编程求得 1997 的倒数的循环节长度为:998
最后我们验证一下:
∵ 素数p化成循环小数后,其循环节长度d满足:d|(p-1),即d整除(p-1)
又∵ 1997 - 1 = 1996 = 2^2 × 499
∴ 1997 的倒数的循环节可能的长度是:1,2,4,499,998,1996
∴ 我们通过编程获得的素数 1997 的倒数的循环节长度为:998,是可以接受的.
由于两种方法的编程都比较简单,具体的程序就不列出来了.