123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- #!/usr/bin/ruby
- # Daniel "Trizen" Șuteu
- # Date: 25 October 2017
- # https://github.com/trizen
- # Harmonic sum of prime powers <= n, defined as:
- #
- # Sum_{p <= n} (Sum_{1 <= k <= floor(log(n)/log(p))} 1/p^k)
- #
- # where p runs over the prime number <= n.
- # This is equivalent with:
- # Sum_{p <= n} (p^(floor(log(n)/log(p))) - 1) / (p^(floor(log(n)/log(p))) * (p-1))
- # See also:
- # https://oeis.org/A294208
- func g((0), _) { 1 }
- func f((0), _) { 0 }
- func g(k,n) is cached {
- var p = prime(k)
- p**n.ilog(p) * (p-1) * g(k-1, n)
- }
- func f(k,n) is cached {
- var p = prime(k)
- (p**n.ilog(p) * (p-1) * f(k-1, n)) + ((p**n.ilog(p) - 1) * g(k-1, n))
- }
- for n in (0..100) {
- var a = f(prime_count(n), n)
- var b = g(prime_count(n), n)
- var r = a/b
- say ("#{a}/#{b} = #{r.as_frac}")
- }
- __END__
- 0/1 = 0/1
- 1/2 = 1/2
- 10/12 = 5/6
- 26/24 = 13/12
- 616/480 = 77/60
- 28752/20160 = 599/420
- 62544/40320 = 1303/840
- 201072/120960 = 4189/2520
- 23327520/13305600 = 48599/27720
- 3798760320/2075673600 = 659507/360360
- 7856979840/4151347200 = 1364059/720720
- 2203520071680/1129166438400 = 23909723/12252240
- 773928860405760/386174921932800 = 466536977/232792560
- 400103851647836160/195404510497996800 = 10963143031/5354228880
- 2039600160338780160/977022552489984000 = 55886560931/26771144400
- 6227358542404116480/2931067657469952000 = 170634254393/80313433200
- 5138685030841301237760/2380026937865601024000 = 5028706810597/2329089562800
- 4850377886818378181836800/2213425052215008952320000 = 158219000691307/72201776446800
- 9839094839400194423193600/4426850104430017904640000 = 320950612410539/144403552893600
- 13265040929840539616260915200/5896564339100783848980480000 = 12019576212083543/5342931457063200
- 21990529698502516324627120128000/9670365516125285512327987200000 = 498145556152488463/219060189739591200
- 40121051987172806473794354413568000/17464680122122265635264344883200000 = 21639319104296595109/9419588158802421600
- 87545089681885231815565554106761216000/37758638424028338303441513637478400000 = 1026467586060742391723/442720643463713815200
- 618209718976629242466593380695539712000/264310468968198368124090595462348800000 = 7248518908634298715661/3099044504245996706400
- 1717530129885936507380384068160949583872000/728439652476354702549993681094233292800000 = 387270546661863828636433/164249358725037825439200
- 5919637604313303301003573914750235006992384000/2492720490774085792126078376704466327961600000 = 23013211611775003714988747/9690712164777231700912800
- 21815436861233135229200645230588128105269821440000/9123356996233153999181446858738346760339456000000 = 1413496620483052458315226367/591133442051411133755680800
- 43915978628598556520875710675511829546800250880000/18246713992466307998362893717476693520678912000000 = 2845466161030211514560317759/1182266884102822267511361600
- 195400740619165593263204343592466772028315517583360000/80686969274686013968760716018681938748442148864000000 = 191828499673126993743052651453/79211881234889091923261227200
- 976789768726481019495938837775867592693119072809779200000/401014237295189489424740758612849235579757479854080000000 = 13699035358026905647679999480363/5624043567677125526551547131200
- 5162880049511637881709235865970085212156776385237693235200000/2107730831223515956416437427269135582207205314113044480000000 = 1005653624703641237807191509197699/410555180440430163438262940577600
- 31978069869926146871692793525434657652722218100335483184742400000/12987837381999305323438087426832413457560799145564580085760000000 = 79857191532028087950206392167195821/32433859254793982911622772305630400
- 96415240623926563034464976406927395678817054269360693261107200000/38963512145997915970314262280497240372682397436693740257280000000 = 240772828642558115069568168068462663/97301577764381948734868316916891200
- 659397135682416017122134398932548628700588827947077765036192563200000/265185663665661816093958869081064217976476396954137596191047680000000 = 20081446355096705499509026266599292229/8076030954443701744994070304101969600
- 5187734705067260485916824992918854511164941623413477164228272350822400000/2076934117829463343647885862642894955191763140944805653368285429760000000 = 1795324756558050491201297408031438977981/718766754945489455304472257065075294400
- 48507571248897958125847671376874091123666345658757000696017027532115148800000/19340410505227962656049113152930637822745698368478030244165473921925120000000 = 174865268141076387101830320836114656158557/69720375229712477164533808935312303556800
|