Quantcast
Channel: 円周率近似値の日に生まれて理系じゃないわけないだろ! - knifeのblog
Viewing all articles
Browse latest Browse all 5376

回文数にならない最小の自然数

$
0
0

午後のひとときに、数学とプログラミングの問題を考えてみよう。


89+98=187
187+781=968
968+869=1837
1837+7381=9218
9218+8129=17347
17347+74371=91718
91718+81719=173437
173437+734371=907808
907808+808709=1716517
1716517+7156171=8872688
8872688+8862788=17735476
17735476+67453771=85189247
85189247+74298158=159487405
159487405+504784951=664272356
664272356+653272466=1317544822
1317544822+2284457131=3602001953
3602001953+3591002063=7193004016
7193004016+6104003917=13297007933
13297007933+33970079231=47267087164
47267087164+46178076274=93445163438
93445163438+83436154439=176881317877
176881317877+778713188671=955594506548
955594506548+845605495559=1801200002107
1801200002107+7012000021081=8813200023188

問題
ある自然数x0と、x0の桁を逆に並べたy0がある。
xn=xn-1+yn-1とし、xnが回文になるまで操作を繰り返す。
ただし、x0自身が回文のとき、操作をしない。

プログラミング問題
xnが100万桁を越えても回文にならない最小のx0を求めるプログラムを作れ。


シンキングタ~イム


kaibun.c

#include <stdio.h>
#include <stdlib.h>

#define    K    1000001

int main(int argc, char *argv[])
{
    char a[2][K];
    int x;
    int i,j,k,l,m,n;


    x = 1;
    k = 1;
    while ( k < K ) {
        i = x;
        k = 0;
        while ( i > 0 ) {
            a[0][k] = i%10;
            i /= 10;
            k++;
        }    
        l = 0;
        m = 0;
        n = 0;
        printf("%d\n",x);
        while ( k < K && m == 0 ) {
            j = 0;
            m = 1;
            if ( l >= 100 ) {
                printf("%d loop, %d digit\r",l,k);
            }
            for (i=0; i<k; i++) {
                if ( m == 1 && a[n][i] != a[n][k-i-1] ) {
                    m = 0;
                }
                j = a[n][i]+a[n][k-i-1]+j;
                a[1-n][i] = j%10;
                j /= 10;
            }
            if ( m == 1 ) break;
            if ( l < 100 ) {
                printf("%d: ",l+1);
                for (i=0; i<k; i++) printf("%d",a[n][k-i-1]);
                printf("+");
                for (i=0; i<k; i++) printf("%d",a[n][i]);
                printf("=");
            }
            if ( j > 0 ) {
                a[1-n][i] = j;
                k++;
            }
            n = 1-n;
            if ( l < 100 ) {
                for (i=0; i<k; i++) printf("%d",a[n][k-i-1]);
                printf("\n");
            }
            l++;
        }
        if ( m == 1 ) {
            printf("%d loop\n\n",l);
        }
        x++;
    }

    return EXIT_SUCCESS;
}


output

1
0 loop

2
0 loop

3
0 loop

4
0 loop

5
0 loop

6
0 loop

7
0 loop

8
0 loop

9
0 loop

10
1: 10+01=11
1 loop

11
0 loop

12
1: 12+21=33
1 loop

13
1: 13+31=44
1 loop

14
1: 14+41=55
1 loop

15
1: 15+51=66
1 loop

16
1: 16+61=77
1 loop

17
1: 17+71=88
1 loop

18
1: 18+81=99
1 loop

19
1: 19+91=110
2: 110+011=121
2 loop

20
1: 20+02=22
1 loop

21
1: 21+12=33
1 loop

22
0 loop

23
1: 23+32=55
1 loop

24
1: 24+42=66
1 loop

25
1: 25+52=77
1 loop

26
1: 26+62=88
1 loop

27
1: 27+72=99
1 loop

28
1: 28+82=110
2: 110+011=121
2 loop

29
1: 29+92=121
1 loop

30
1: 30+03=33
1 loop

31
1: 31+13=44
1 loop

32
1: 32+23=55
1 loop

33
0 loop

34
1: 34+43=77
1 loop

35
1: 35+53=88
1 loop

36
1: 36+63=99
1 loop

37
1: 37+73=110
2: 110+011=121
2 loop

38
1: 38+83=121
1 loop

39
1: 39+93=132
2: 132+231=363
2 loop

40
1: 40+04=44
1 loop

41
1: 41+14=55
1 loop

42
1: 42+24=66
1 loop

43
1: 43+34=77
1 loop

44
0 loop

45
1: 45+54=99
1 loop

46
1: 46+64=110
2: 110+011=121
2 loop

47
1: 47+74=121
1 loop

48
1: 48+84=132
2: 132+231=363
2 loop

49
1: 49+94=143
2: 143+341=484
2 loop

50
1: 50+05=55
1 loop

51
1: 51+15=66
1 loop

52
1: 52+25=77
1 loop

53
1: 53+35=88
1 loop

54
1: 54+45=99
1 loop

55
0 loop

56
1: 56+65=121
1 loop

57
1: 57+75=132
2: 132+231=363
2 loop

58
1: 58+85=143
2: 143+341=484
2 loop

59
1: 59+95=154
2: 154+451=605
3: 605+506=1111
3 loop

60
1: 60+06=66
1 loop

61
1: 61+16=77
1 loop

62
1: 62+26=88
1 loop

63
1: 63+36=99
1 loop

64
1: 64+46=110
2: 110+011=121
2 loop

65
1: 65+56=121
1 loop

66
0 loop

67
1: 67+76=143
2: 143+341=484
2 loop

68
1: 68+86=154
2: 154+451=605
3: 605+506=1111
3 loop

69
1: 69+96=165
2: 165+561=726
3: 726+627=1353
4: 1353+3531=4884
4 loop

70
1: 70+07=77
1 loop

71
1: 71+17=88
1 loop

72
1: 72+27=99
1 loop

73
1: 73+37=110
2: 110+011=121
2 loop

74
1: 74+47=121
1 loop

75
1: 75+57=132
2: 132+231=363
2 loop

76
1: 76+67=143
2: 143+341=484
2 loop

77
0 loop

78
1: 78+87=165
2: 165+561=726
3: 726+627=1353
4: 1353+3531=4884
4 loop

79
1: 79+97=176
2: 176+671=847
3: 847+748=1595
4: 1595+5951=7546
5: 7546+6457=14003
6: 14003+30041=44044
6 loop

80
1: 80+08=88
1 loop

81
1: 81+18=99
1 loop

82
1: 82+28=110
2: 110+011=121
2 loop

83
1: 83+38=121
1 loop

84
1: 84+48=132
2: 132+231=363
2 loop

85
1: 85+58=143
2: 143+341=484
2 loop

86
1: 86+68=154
2: 154+451=605
3: 605+506=1111
3 loop

87
1: 87+78=165
2: 165+561=726
3: 726+627=1353
4: 1353+3531=4884
4 loop

88
0 loop

89
1: 89+98=187
2: 187+781=968
3: 968+869=1837
4: 1837+7381=9218
5: 9218+8129=17347
6: 17347+74371=91718
7: 91718+81719=173437
8: 173437+734371=907808
9: 907808+808709=1716517
10: 1716517+7156171=8872688
11: 8872688+8862788=17735476
12: 17735476+67453771=85189247
13: 85189247+74298158=159487405
14: 159487405+504784951=664272356
15: 664272356+653272466=1317544822
16: 1317544822+2284457131=3602001953
17: 3602001953+3591002063=7193004016
18: 7193004016+6104003917=13297007933
19: 13297007933+33970079231=47267087164
20: 47267087164+46178076274=93445163438
21: 93445163438+83436154439=176881317877
22: 176881317877+778713188671=955594506548
23: 955594506548+845605495559=1801200002107
24: 1801200002107+7012000021081=8813200023188
24 loop

90
1: 90+09=99
1 loop

91
1: 91+19=110
2: 110+011=121
2 loop

92
1: 92+29=121
1 loop

93
1: 93+39=132
2: 132+231=363
2 loop

94
1: 94+49=143
2: 143+341=484
2 loop

95
1: 95+59=154
2: 154+451=605
3: 605+506=1111
3 loop

96
1: 96+69=165
2: 165+561=726
3: 726+627=1353
4: 1353+3531=4884
4 loop

97
1: 97+79=176
2: 176+671=847
3: 847+748=1595
4: 1595+5951=7546
5: 7546+6457=14003
6: 14003+30041=44044
6 loop

98
1: 98+89=187
2: 187+781=968
3: 968+869=1837
4: 1837+7381=9218
5: 9218+8129=17347
6: 17347+74371=91718
7: 91718+81719=173437
8: 173437+734371=907808
9: 907808+808709=1716517
10: 1716517+7156171=8872688
11: 8872688+8862788=17735476
12: 17735476+67453771=85189247
13: 85189247+74298158=159487405
14: 159487405+504784951=664272356
15: 664272356+653272466=1317544822
16: 1317544822+2284457131=3602001953
17: 3602001953+3591002063=7193004016
18: 7193004016+6104003917=13297007933
19: 13297007933+33970079231=47267087164
20: 47267087164+46178076274=93445163438
21: 93445163438+83436154439=176881317877
22: 176881317877+778713188671=955594506548
23: 955594506548+845605495559=1801200002107
24: 1801200002107+7012000021081=8813200023188
24 loop

99
0 loop

100
1: 100+001=101
1 loop

101
0 loop

102
1: 102+201=303
1 loop

103
1: 103+301=404
1 loop

104
1: 104+401=505
1 loop

105
1: 105+501=606
1 loop

106
1: 106+601=707
1 loop

107
1: 107+701=808
1 loop

108
1: 108+801=909
1 loop

109
1: 109+901=1010
2: 1010+0101=1111
2 loop

110
1: 110+011=121
1 loop

111
0 loop

112
1: 112+211=323
1 loop

113
1: 113+311=424
1 loop

114
1: 114+411=525
1 loop

115
1: 115+511=626
1 loop

116
1: 116+611=727
1 loop

117
1: 117+711=828
1 loop

118
1: 118+811=929
1 loop

119
1: 119+911=1030
2: 1030+0301=1331
2 loop

120
1: 120+021=141
1 loop

121
0 loop

122
1: 122+221=343
1 loop

123
1: 123+321=444
1 loop

124
1: 124+421=545
1 loop

125
1: 125+521=646
1 loop

126
1: 126+621=747
1 loop

127
1: 127+721=848
1 loop

128
1: 128+821=949
1 loop

129
1: 129+921=1050
2: 1050+0501=1551
2 loop

130
1: 130+031=161
1 loop

131
0 loop

132
1: 132+231=363
1 loop

133
1: 133+331=464
1 loop

134
1: 134+431=565
1 loop

135
1: 135+531=666
1 loop

136
1: 136+631=767
1 loop

137
1: 137+731=868
1 loop

138
1: 138+831=969
1 loop

139
1: 139+931=1070
2: 1070+0701=1771
2 loop

140
1: 140+041=181
1 loop

141
0 loop

142
1: 142+241=383
1 loop

143
1: 143+341=484
1 loop

144
1: 144+441=585
1 loop

145
1: 145+541=686
1 loop

146
1: 146+641=787
1 loop

147
1: 147+741=888
1 loop

148
1: 148+841=989
1 loop

149
1: 149+941=1090
2: 1090+0901=1991
2 loop

150
1: 150+051=201
2: 201+102=303
2 loop

151
0 loop

152
1: 152+251=403
2: 403+304=707
2 loop

153
1: 153+351=504
2: 504+405=909
2 loop

154
1: 154+451=605
2: 605+506=1111
2 loop

155
1: 155+551=706
2: 706+607=1313
3: 1313+3131=4444
3 loop

156
1: 156+651=807
2: 807+708=1515
3: 1515+5151=6666
3 loop

157
1: 157+751=908
2: 908+809=1717
3: 1717+7171=8888
3 loop

158
1: 158+851=1009
2: 1009+9001=10010
3: 10010+01001=11011
3 loop

159
1: 159+951=1110
2: 1110+0111=1221
2 loop

160
1: 160+061=221
2: 221+122=343
2 loop

161
0 loop

162
1: 162+261=423
2: 423+324=747
2 loop

163
1: 163+361=524
2: 524+425=949
2 loop

164
1: 164+461=625
2: 625+526=1151
3: 1151+1511=2662
3 loop

165
1: 165+561=726
2: 726+627=1353
3: 1353+3531=4884
3 loop

166
1: 166+661=827
2: 827+728=1555
3: 1555+5551=7106
4: 7106+6017=13123
5: 13123+32131=45254
5 loop

167
1: 167+761=928
2: 928+829=1757
3: 1757+7571=9328
4: 9328+8239=17567
5: 17567+76571=94138
6: 94138+83149=177287
7: 177287+782771=960058
8: 960058+850069=1810127
9: 1810127+7210181=9020308
10: 9020308+8030209=17050517
11: 17050517+71505071=88555588
11 loop

168
1: 168+861=1029
2: 1029+9201=10230
3: 10230+03201=13431
3 loop

169
1: 169+961=1130
2: 1130+0311=1441
2 loop

170
1: 170+071=241
2: 241+142=383
2 loop

171
0 loop

172
1: 172+271=443
2: 443+344=787
2 loop

173
1: 173+371=544
2: 544+445=989
2 loop

174
1: 174+471=645
2: 645+546=1191
3: 1191+1911=3102
4: 3102+2013=5115
4 loop

175
1: 175+571=746
2: 746+647=1393
3: 1393+3931=5324
4: 5324+4235=9559
4 loop

176
1: 176+671=847
2: 847+748=1595
3: 1595+5951=7546
4: 7546+6457=14003
5: 14003+30041=44044
5 loop

177
1: 177+771=948
2: 948+849=1797
3: 1797+7971=9768
4: 9768+8679=18447
5: 18447+74481=92928
6: 92928+82929=175857
7: 175857+758571=934428
8: 934428+824439=1758867
9: 1758867+7688571=9447438
10: 9447438+8347449=17794887
11: 17794887+78849771=96644658
12: 96644658+85644669=182289327
13: 182289327+723982281=906271608
14: 906271608+806172609=1712444217
15: 1712444217+7124442171=8836886388
15 loop

178
1: 178+871=1049
2: 1049+9401=10450
3: 10450+05401=15851
3 loop

179
1: 179+971=1150
2: 1150+0511=1661
2 loop

180
1: 180+081=261
2: 261+162=423
3: 423+324=747
3 loop

181
0 loop

182
1: 182+281=463
2: 463+364=827
3: 827+728=1555
4: 1555+5551=7106
5: 7106+6017=13123
6: 13123+32131=45254
6 loop

183
1: 183+381=564
2: 564+465=1029
3: 1029+9201=10230
4: 10230+03201=13431
4 loop

184
1: 184+481=665
2: 665+566=1231
3: 1231+1321=2552
3 loop

185
1: 185+581=766
2: 766+667=1433
3: 1433+3341=4774
3 loop

186
1: 186+681=867
2: 867+768=1635
3: 1635+5361=6996
3 loop

187
1: 187+781=968
2: 968+869=1837
3: 1837+7381=9218
4: 9218+8129=17347
5: 17347+74371=91718
6: 91718+81719=173437
7: 173437+734371=907808
8: 907808+808709=1716517
9: 1716517+7156171=8872688
10: 8872688+8862788=17735476
11: 17735476+67453771=85189247
12: 85189247+74298158=159487405
13: 159487405+504784951=664272356
14: 664272356+653272466=1317544822
15: 1317544822+2284457131=3602001953
16: 3602001953+3591002063=7193004016
17: 7193004016+6104003917=13297007933
18: 13297007933+33970079231=47267087164
19: 47267087164+46178076274=93445163438
20: 93445163438+83436154439=176881317877
21: 176881317877+778713188671=955594506548
22: 955594506548+845605495559=1801200002107
23: 1801200002107+7012000021081=8813200023188
23 loop

188
1: 188+881=1069
2: 1069+9601=10670
3: 10670+07601=18271
4: 18271+17281=35552
5: 35552+25553=61105
6: 61105+50116=111221
7: 111221+122111=233332
7 loop

189
1: 189+981=1170
2: 1170+0711=1881
2 loop

190
1: 190+091=281
2: 281+182=463
3: 463+364=827
4: 827+728=1555
5: 1555+5551=7106
6: 7106+6017=13123
7: 13123+32131=45254
7 loop

191
0 loop

192
1: 192+291=483
2: 483+384=867
3: 867+768=1635
4: 1635+5361=6996
4 loop

193
1: 193+391=584
2: 584+485=1069
3: 1069+9601=10670
4: 10670+07601=18271
5: 18271+17281=35552
6: 35552+25553=61105
7: 61105+50116=111221
8: 111221+122111=233332
8 loop

194
1: 194+491=685
2: 685+586=1271
3: 1271+1721=2992
3 loop

195
1: 195+591=786
2: 786+687=1473
3: 1473+3741=5214
4: 5214+4125=9339
4 loop

196
1: 196+691=887
2: 887+788=1675
3: 1675+5761=7436
4: 7436+6347=13783
5: 13783+38731=52514
6: 52514+41525=94039
7: 94039+93049=187088
8: 187088+880781=1067869
9: 1067869+9687601=10755470
10: 10755470+07455701=18211171
11: 18211171+17111281=35322452
12: 35322452+25422353=60744805
13: 60744805+50844706=111589511
14: 111589511+115985111=227574622
15: 227574622+226475722=454050344
16: 454050344+443050454=897100798
17: 897100798+897001798=1794102596
18: 1794102596+6952014971=8746117567
19: 8746117567+7657116478=16403234045
20: 16403234045+54043230461=70446464506
21: 70446464506+60546464407=130992928913
22: 130992928913+319829299031=450822227944
23: 450822227944+449722228054=900544455998
24: 900544455998+899554445009=1800098901007
25: 1800098901007+7001098900081=8801197801088
26: 8801197801088+8801087911088=17602285712176
27: 17602285712176+67121758220671=84724043932847
28: 84724043932847+74823934042748=159547977975595
29: 159547977975595+595579779745951=755127757721546
30: 755127757721546+645127757721557=1400255515443103
31: 1400255515443103+3013445155520041=4413700670963144
32: 4413700670963144+4413690760073144=8827391431036288
33: 8827391431036288+8826301341937288=17653692772973576
34: 17653692772973576+67537927729635671=85191620502609247
35: 85191620502609247+74290620502619158=159482241005228405
36: 159482241005228405+504822500142284951=664304741147513356
37: 664304741147513356+653315741147403466=1317620482294916822
38: 1317620482294916822+2286194922840267131=3603815405135183953
39: 3603815405135183953+3593815315045183063=7197630720180367016
40: 7197630720180367016+6107630810270367917=13305261530450734933
41: 13305261530450734933+33943705403516250331=47248966933966985264
42: 47248966933966985264+46258966933966984274=93507933867933969538
43: 93507933867933969538+83596933976833970539=177104867844767940077
44: 177104867844767940077+770049767448768401771=947154635293536341848
45: 947154635293536341848+848143635392536451749=1795298270686072793597
46: 1795298270686072793597+7953972706860728925971=9749270977546801719568
47: 9749270977546801719568+8659171086457790729479=18408442064004592449047
48: 18408442064004592449047+74094429540046024480481=92502871604050616929528
49: 92502871604050616929528+82592961605040617820529=175095833209091234750057
50: 175095833209091234750057+750057432190902338590571=925153265399993573340628
51: 925153265399993573340628+826043375399993562351529=1751196640799987135692157
52: 1751196640799987135692157+7512965317899970466911571=9264161958699957602603728
53: 9264161958699957602603728+8273062067599968591614629=17537224026299926194218357
54: 17537224026299926194218357+75381249162999262042273571=92918473189299188236491928
55: 92918473189299188236491928+82919463288199298137481929=175837936477498486373973857
56: 175837936477498486373973857+758379373684894774639738571=934217310162393261013712428
57: 934217310162393261013712428+824217310162393261013712439=1758434620324786522027424867
58: 1758434620324786522027424867+7684247202256874230264348571=9442681822581660752291773438
59: 9442681822581660752291773438+8343771922570661852281862449=17786453745152322604573635887
60: 17786453745152322604573635887+78853637540622325154735468771=96640091285774647759309104658
61: 96640091285774647759309104658+85640190395774647758219004669=182280281681549295517528109327
62: 182280281681549295517528109327+723901825715592945186182082281=906182107397142240703710191608
63: 906182107397142240703710191608+806191017307042241793701281609=1712373124704184482497411473217
64: 1712373124704184482497411473217+7123741147942844814074213732171=8836114272647029296571625205388
65: 8836114272647029296571625205388+8835025261756929207462724116388=17671139534403958504034349321776
66: 17671139534403958504034349321776+67712394343040585930443593117671=85383533877444544434477942439447
67: 85383533877444544434477942439447+74493424977443444544477833538358=159876958854887988978955775977805
68: 159876958854887988978955775977805+508779577559879889788458859678951=668656536414767878767414635656756
69: 668656536414767878767414635656756+657656536414767878767414635656866=1326313072829535757534829271313622
70: 1326313072829535757534829271313622+2263131729284357575359282703136231=3589444802113893332894111974449853
71: 3589444802113893332894111974449853+3589444791114982333983112084449853=7178889593228875666877224058899706
72: 7178889593228875666877224058899706+6079988504227786665788223959888717=13258878097456662332665448018788423
73: 13258878097456662332665448018788423+32488781084456623326665479087885231=45747659181913285659330927106673654
74: 45747659181913285659330927106673654+45637660172903395658231918195674754=91385319354816681317562845302348408
75: 91385319354816681317562845302348408+80484320354826571318661845391358319=171869639709643252636224690693706727
76: 171869639709643252636224690693706727+727607396096422636252346907936968171=899477035806065888888571598630674898
77: 899477035806065888888571598630674898+898476036895175888888560608530774998=1797953072701241777777132207161449896
78: 1797953072701241777777132207161449896+6989441617022317777771421072703597971=8787394689723559555548553279865047867
79: 8787394689723559555548553279865047867+7687405689723558455559553279864937878=16474800379447118011108106559729985745
80: 16474800379447118011108106559729985745+54758992795560180111081174497300847461=71233793175007298122189281057030833206
81: 71233793175007298122189281057030833206+60233803075018298122189270057139733217=131467596250025596244378551114170566423
82: 131467596250025596244378551114170566423+324665071411155873442695520052695764131=456132667661181469687074071166866330554
83: 456132667661181469687074071166866330554+455033668661170470786964181166766231654=911166336322351940474038252333632562208
84: 911166336322351940474038252333632562208+802265236333252830474049153223633661119=1713431572655604770948087405557266223327
85: 1713431572655604770948087405557266223327+7233226627555047808490774065562751343171=8946658200210652579438861471120017566498
86: 8946658200210652579438861471120017566498+8946657100211741688349752560120028566498=17893315300422394267788614031240046132996
87: 17893315300422394267788614031240046132996+69923164004213041688776249322400351339871=87816479304635435956564863353640397472867
88: 87816479304635435956564863353640397472867+76827479304635336846565953453640397461878=164643958609270772803130816807280794934745
89: 164643958609270772803130816807280794934745+547439497082708618031308277072906859346461=712083455691979390834439093880187654281206
90: 712083455691979390834439093880187654281206+602182456781088390934438093979196554380217=1314265912473067781768877187859384208661423
91: 1314265912473067781768877187859384208661423+3241668024839587817788671877603742195624131=4555933937312655599557549065463126404285554
92: 4555933937312655599557549065463126404285554+4555824046213645609457559955562137393395554=9111757983526301209015109021025263797681108
93: 9111757983526301209015109021025263797681108+8011867973625201209015109021036253897571119=17123625957151502418030218042061517695252227
94: 17123625957151502418030218042061517695252227+72225259671516024081203081420515175952632171=89348885628667526499233299462576693647884398
95: 89348885628667526499233299462576693647884398+89348874639667526499233299462576682658884398=178697760268335052998466598925153376306768796
96: 178697760268335052998466598925153376306768796+697867603673351529895664899250533862067796871=876565363941686582894131498175687238374565667
97: 876565363941686582894131498175687238374565667+766565473832786571894131498285686149363565678=1643130837774473154788262996461373387738131345
98: 1643130837774473154788262996461373387738131345+5431318377833731646992628874513744777380313461=7074449215608204801780891870975118165118444806
99: 7074449215608204801780891870975118165118444806+6084448115618115790781980871084028065129444707=13158897331226320592562872742059146230247889513
100: 13158897331226320592562872742059146230247889513+31598874203264195024727826529502362213379885131=44757771534490515617290699271561508443627774644
2415838 loop, 1000000 digit

 

プログラムの変数がいい加減ですが、まぁお許しをw

100万桁の変数はありませんので、char型の配列で実現しました。
1つの箱に1桁ずつ入れて、100万1桁分を2つ分、
a[2][1000001]

としました。
リングバッファの要領で、2つを回して使います。

最小なxを求めるのですが、100ループまでは、
n: xn+yn=xn+1
を表示させ、プログラムが正常に計算しているかのデバッグ用に使いました。

さて、この数ですが、名前がありまして、Lychrel numberと呼ばれています。
日本語では、Lychrel数と呼ばれているようですが、英語版のウィキペディアには記事がありますが、日本語版には記事が有りませんでした。
カタカナにすると、リクレル数なのかな。


この操作をLychrelプロセスと呼ぶようです。

さて、プログラムでは100万桁まで調べましたが、数学的には回文数にならないと断言することは出来ないと考えています。

ただ、確率的に考えて、回文数になる確率は、(1/10)の桁数/2乗というオーダーになります。
つまり、100万桁だと1/10^500000で、小数点以下0が50万桁-1連なって1ですから、桁数が増えれば増えるほど、確率は低くなるということ。

ただし、確率が0になるわけではないので、これが最小のlychrl数かと言われると、なかなか難しいのだが、ネットには196が最小のlychrl数とある。

どうやって、決定したのだろうか。

 


ではでは


Viewing all articles
Browse latest Browse all 5376

Trending Articles