0と1からなるnの倍数

 投稿者:山中和義  投稿日:2013年 1月18日(金)12時56分27秒
  問題
全ての自然数n対して必ず0と1からなるnの倍数が存在する

考察
9,18,27,36,…,90,99,,… が大きい数となる
最小の数がすべて1となるのは、1,3,9,11,33,37,41,99,…


OPTION ARITHMETIC RATIONAL !多桁の整数

FOR N=1 TO 100

   LET C=0 !個数
   LET B=1
   DO WHILE C<3

      LET W=BIT2DEC(B) !2進法のビット列を10進法数値と解釈する
      IF MOD(W,N)=0 THEN
         LET C=C+1
         PRINT N;"×";W/N;"=";W
      END IF

      LET B=B+1
   LOOP
   PRINT

NEXT n

END

EXTERNAL FUNCTION BIT2DEC(N) !2進法のビット列を10進法数値と解釈する
OPTION ARITHMETIC RATIONAL !多桁の整数
LET BIT2DEC=0
IF N>0 THEN LET BIT2DEC=BIT2DEC(INT(N/2))*10+MOD(N,2)
END FUNCTION


実行結果

1 × 1 = 1
1 × 10 = 10
1 × 11 = 11

2 × 5 = 10
2 × 50 = 100
2 × 55 = 110

3 × 37 = 111
3 × 337 = 1011
3 × 367 = 1101

4 × 25 = 100
4 × 250 = 1000
4 × 275 = 1100

5 × 2 = 10
5 × 20 = 100
5 × 22 = 110

6 × 185 = 1110
6 × 1685 = 10110
6 × 1835 = 11010

7 × 143 = 1001
7 × 1430 = 10010
7 × 1443 = 10101

8 × 125 = 1000
8 × 1250 = 10000
8 × 1375 = 11000

9 × 12345679 = 111111111
9 × 112345679 = 1011111111
9 × 122345679 = 1101111111

10 × 1 = 10
10 × 10 = 100
10 × 11 = 110

11 × 1 = 11
11 × 10 = 110
11 × 91 = 1001

12 × 925 = 11100
12 × 8425 = 101100
12 × 9175 = 110100

13 × 77 = 1001
13 × 770 = 10010
13 × 777 = 10101

14 × 715 = 10010
14 × 7150 = 100100
14 × 7215 = 101010

15 × 74 = 1110
15 × 674 = 10110
15 × 734 = 11010

16 × 625 = 10000
16 × 6250 = 100000
16 × 6875 = 110000

17 × 653 = 11101
17 × 5883 = 100011
17 × 6530 = 111010

18 × 61728395 = 1111111110
18 × 561728395 = 10111111110
18 × 611728395 = 11011111110

19 × 579 = 11001
19 × 5269 = 100111
19 × 5790 = 110010

20 × 5 = 100
20 × 50 = 1000
20 × 55 = 1100

21 × 481 = 10101
21 × 4810 = 101010
21 × 5291 = 111111

22 × 5 = 110
22 × 50 = 1100
22 × 455 = 10010

23 × 4787 = 110101
23 × 43957 = 1011011
23 × 47870 = 1101010

24 × 4625 = 111000
24 × 42125 = 1011000
24 × 45875 = 1101000

25 × 4 = 100
25 × 40 = 1000
25 × 44 = 1100

26 × 385 = 10010
26 × 3850 = 100100
26 × 3885 = 101010

27 × 40781893 = 1101111111
27 × 41151893 = 1111101111
27 × 41152263 = 1111111101

28 × 3575 = 100100
28 × 35750 = 1001000
28 × 36075 = 1010100

29 × 37969 = 1101101
29 × 348659 = 10111111
29 × 379659 = 11010111

30 × 37 = 1110
30 × 337 = 10110
30 × 367 = 11010

31 × 3581 = 111011
31 × 32581 = 1010011
31 × 35810 = 1110110

32 × 3125 = 100000
32 × 31250 = 1000000
32 × 34375 = 1100000

33 × 3367 = 111111
33 × 33367 = 1101111
33 × 33667 = 1111011

34 × 3265 = 111010
34 × 29415 = 1000110
34 × 32650 = 1110100

35 × 286 = 10010
35 × 2860 = 100100
35 × 2886 = 101010

36 × 308641975 = 11111111100
36 × 2808641975 = 101111111100
36 × 3058641975 = 110111111100

37 × 3 = 111
37 × 30 = 1110
37 × 273 = 10101

38 × 2895 = 110010
38 × 26345 = 1001110
38 × 28950 = 1100100

39 × 259 = 10101
39 × 2590 = 101010
39 × 2849 = 111111

40 × 25 = 1000
40 × 250 = 10000
40 × 275 = 11000

41 × 271 = 11111
41 × 2710 = 111110
41 × 24661 = 1011101

42 × 2405 = 101010
42 × 24050 = 1010100
42 × 26455 = 1111110

43 × 25607 = 1101101
43 × 234907 = 10101001
43 × 256070 = 11011010

44 × 25 = 1100
44 × 250 = 11000
44 × 2275 = 100100

45 × 24691358 = 1111111110
45 × 224691358 = 10111111110
45 × 244691358 = 11011111110

46 × 23935 = 1101010
46 × 219785 = 10110110
46 × 239350 = 11010100

47 × 213 = 10011
47 × 2130 = 100110
47 × 21300 = 1001100

48 × 23125 = 1110000
48 × 210625 = 10110000
48 × 229375 = 11010000

49 × 22449 = 1100001
49 × 206349 = 10111101
49 × 224490 = 11000010

50 × 2 = 100
50 × 20 = 1000
50 × 22 = 1100

51 × 1961 = 100011
51 × 19610 = 1000110
51 × 196100 = 10001100

52 × 1925 = 100100
52 × 19250 = 1001000
52 × 19425 = 1010100

53 × 1887 = 100011
53 × 18870 = 1000110
53 × 18887 = 1001011

54 × 203909465 = 11011111110
54 × 205759465 = 11111011110
54 × 205761315 = 11111111010

55 × 2 = 110
55 × 20 = 1100
55 × 182 = 10010

56 × 17875 = 1001000
56 × 178750 = 10010000
56 × 180375 = 10101000

57 × 193 = 11001
57 × 1930 = 110010
57 × 19300 = 1100100

58 × 189845 = 11011010
58 × 1743295 = 101111110
58 × 1898295 = 110101110

59 × 186629 = 11011111
59 × 1696629 = 100101111
59 × 1713729 = 101110011

60 × 185 = 11100
60 × 1685 = 101100
60 × 1835 = 110100

61 × 1641 = 100101
61 × 16410 = 1001010
61 × 18051 = 1101111

62 × 17905 = 1110110
62 × 162905 = 10100110
62 × 179050 = 11101100

63 × 17635097 = 1111011111
63 × 160335097 = 10101111111
63 × 160493827 = 10111111101

64 × 15625 = 1000000
64 × 156250 = 10000000
64 × 171875 = 11000000

65 × 154 = 10010
65 × 1540 = 100100
65 × 1554 = 101010

66 × 16835 = 1111110
66 × 166835 = 11011110
66 × 168335 = 11110110

67 × 16433 = 1101011
67 × 149403 = 10010001
67 × 164330 = 11010110

68 × 16325 = 1110100
68 × 147075 = 10001100
68 × 163250 = 11101000

69 × 144929 = 10000101
69 × 161029 = 11111001
69 × 1449290 = 100001010

70 × 143 = 10010
70 × 1430 = 100100
70 × 1443 = 101010

71 × 141 = 10011
71 × 1410 = 100110
71 × 14100 = 1001100

72 × 1543209875 = 111111111000
72 × 14043209875 = 1011111111000
72 × 15293209875 = 1101111111000

73 × 137 = 10001
73 × 1370 = 100010
73 × 1507 = 110011

74 × 15 = 1110
74 × 150 = 11100
74 × 1365 = 101010

75 × 148 = 11100
75 × 1348 = 101100
75 × 1468 = 110100

76 × 14475 = 1100100
76 × 131725 = 10011100
76 × 144750 = 11001000

77 × 13 = 1001
77 × 130 = 10010
77 × 143 = 11011

78 × 1295 = 101010
78 × 12950 = 1010100
78 × 14245 = 1111110

79 × 126709 = 10010011
79 × 140519 = 11101001
79 × 1267090 = 100100110

80 × 125 = 10000
80 × 1250 = 100000
80 × 1375 = 110000

81 × 13717421 = 1111111101
81 × 124828531 = 10111111011
81 × 135939631 = 11011110111

82 × 1355 = 111110
82 × 13550 = 1111100
82 × 123305 = 10111010

83 × 1217 = 101011
83 × 12170 = 1010110
83 × 121700 = 10101100

84 × 12025 = 1010100
84 × 120250 = 10101000
84 × 132275 = 11111100

85 × 1306 = 111010
85 × 11766 = 1000110
85 × 13060 = 1110100

86 × 128035 = 11011010
86 × 1174535 = 101010010
86 × 1280350 = 110110100

87 × 126553 = 11010111
87 × 1149553 = 100011111
87 × 1265530 = 110101110

88 × 125 = 11000
88 × 1250 = 110000
88 × 11375 = 1001000

89 × 123709 = 11010101
89 × 1123709 = 100010101
89 × 1237090 = 110101010

90 × 12345679 = 1111111110
90 × 112345679 = 10111111110
90 × 122345679 = 11011111110

91 × 11 = 1001
91 × 110 = 10010
91 × 111 = 10101

92 × 119675 = 11010100
92 × 1098925 = 101101100
92 × 1196750 = 110101000

93 × 107527 = 10000011
93 × 1075270 = 100000110
93 × 1193657 = 111010101

94 × 1065 = 100110
94 × 10650 = 1001100
94 × 106500 = 10011000

95 × 1158 = 110010
95 × 10538 = 1001110
95 × 11580 = 1100100

96 × 115625 = 11100000
96 × 1053125 = 101100000
96 × 1146875 = 110100000

97 × 114433 = 11100001
97 × 1032063 = 100110111
97 × 1135063 = 110101111

98 × 112245 = 11000010
98 × 1031745 = 101111010
98 × 1122450 = 110000100

99 × 1122334455667789 = 111111111111111111
99 × 11122334455667789 = 1101111111111111111
99 × 11222334455667789 = 1111011111111111111

100 × 1 = 100
100 × 10 = 1000
100 × 11 = 1100

 

Re: 0と1からなるnの倍数

 投稿者:山中和義  投稿日:2013年 1月19日(土)11時21分45秒
  > No.2962[元記事へ]

> 問題
> 全ての自然数n対して必ず0と1からなるnの倍数が存在する

すべての桁が1(111…1という数)をベースに考えれば一般解になります。

考察
nが2や5の倍数でない場合、すべての桁が1(111…1という数)のnの倍数がある。
このとき、1/nは循環小数になるので、1/n={循環節}/(10^k-1)と表される。
よって、(10^k-1)/9={循環節}/9*N
・nが3で割り切れない場合
 左辺は、すべての桁が1の数で、{循環節}/9倍したものである。
 例 n=7のとき、1/7=0.{142857}=142857/999999なので、999999/9=(142857/9)*7

・nが3で割り切れる場合
 n=3^r*M(Mは3で割り切れない自然数)として、
 上記より、すべての桁が1の数をMの倍数にすることができる。
 この桁数を3^r倍に増やせば、nで割り切れる。
 例 n=33=3*11のとき、1/11=0.{09}=9/99なので、循環節の長さは2
   これより、2*3=6個として、111111

n=2^p*5^qのとき、10^MAX(p,q)とすればよい。

以上をまとめると、
n=2^p*5^q*3^r*M(Mは2,5,3で割り切れない自然数)のとき、
 1/Mの循環節の長さをkとすると、
 (10^(k*3^r)-1)/9 *10^MAX(p,q) がnの倍数となる。
n=2^p*5^q*3^rのとき、
 (10^(3^r)-1)/9 *10^MAX(p,q) がnの倍数となる。
(終り)


OPTION ARITHMETIC RATIONAL !多桁の整数

FOR N=1 TO 100

   LET M=N
   LET P=0
   DO WHILE MOD(M,2)=0 !2^p
      LET M=M/2
      LET P=P+1
   LOOP
   LET Q=0
   DO WHILE MOD(M,5)=0 !5^q
      LET M=M/5
      LET Q=Q+1
   LOOP

   LET R=0
   DO WHILE MOD(M,3)=0 !3^r
      LET M=M/3
      LET R=R+1
   LOOP
   !!!PRINT P;Q;R;M !debug

   FOR K=1 TO M-1 !1/Mの循環節の長さを求める 10^k≡1 mod mを満たす最小のk
      IF modpow(10,K,M)=1 THEN EXIT FOR
   NEXT K
   LET W=(10^(lcm(K,3^R))-1)/9 *10^MAX(P,Q)
   PRINT N; "×"; W/N; "="; W; "(";lcm(K,3^R);"個の1)";   "  k=";K; "r=";R

   !※
   !LET W=(10^(K*3^R)-1)/9 *10^MAX(P,Q)
   !PRINT N; "×"; W/N; "="; W; "(";K*3^R;"個の1)";   "  k=";K; "r=";R

   !※同値
   !IF M>1 THEN !n=2^p*5^q*3^r*Mの場合
   !   FOR K=1 TO M-1 !1/Mの循環節の長さを求める 10^k≡1 mod mを満たす最小のk
   !      IF modpow(10,K,M)=1 THEN EXIT FOR
   !   NEXT K
   !   LET W=(10^(K*3^R)-1)/9 *10^MAX(P,Q)
   !   PRINT N; "×"; W/N; "="; W; "(";K*3^R;"個の1)";   "  k=";K; "r=";R
   !ELSE !n=2^p*5^q*3^rの場合
   !   LET W=(10^(3^R)-1)/9 *10^MAX(P,Q)
   !   PRINT N; "×"; W/N; "="; W; "(";3^R;"個の1)";   "  r=";R
   !END IF

NEXT N

END

EXTERNAL FUNCTION modpow(a,n,b) !a^n≡x mod b のxを返す ※nは非負整数
OPTION ARITHMETIC RATIONAL !多桁の整数
LET S=MOD(1,b)
DO WHILE n>0 !べき乗nを2進展開する
   IF MOD(n,2)=1 THEN LET S=MOD(S*a,b) !ビットが1なら計算する
   LET a=MOD(a*a,b)
   LET n=INT(n/2)
LOOP
LET modpow=S
END FUNCTION

EXTERNAL FUNCTION gcd(a,b) !最大公約数
OPTION ARITHMETIC RATIONAL !多桁の整数
DO UNTIL b=0
   LET t=b
   LET b=MOD(a,b)
   LET a=t
LOOP
LET gcd=a
END FUNCTION

EXTERNAL FUNCTION lcm(a,b) !最小公倍数
OPTION ARITHMETIC RATIONAL !多桁の整数
IF a>b THEN !少しでも桁あふれを防止するために大きい方を先に割る
   LET lcm=(a/gcd(a,b))*b
ELSE
   LET lcm=a*(b/gcd(a,b))
END IF
END FUNCTION


実行結果

1 × 1 = 1 ( 1 個の1)  k= 1 r= 0
2 × 5 = 10 ( 1 個の1)  k= 1 r= 0
3 × 37 = 111 ( 3 個の1)  k= 1 r= 1
4 × 25 = 100 ( 1 個の1)  k= 1 r= 0
5 × 2 = 10 ( 1 個の1)  k= 1 r= 0
6 × 185 = 1110 ( 3 個の1)  k= 1 r= 1
7 × 15873 = 111111 ( 6 個の1)  k= 6 r= 0
8 × 125 = 1000 ( 1 個の1)  k= 1 r= 0
9 × 12345679 = 111111111 ( 9 個の1)  k= 1 r= 2
10 × 1 = 10 ( 1 個の1)  k= 1 r= 0
11 × 1 = 11 ( 2 個の1)  k= 2 r= 0
12 × 925 = 11100 ( 3 個の1)  k= 1 r= 1
13 × 8547 = 111111 ( 6 個の1)  k= 6 r= 0
14 × 79365 = 1111110 ( 6 個の1)  k= 6 r= 0
15 × 74 = 1110 ( 3 個の1)  k= 1 r= 1
16 × 625 = 10000 ( 1 個の1)  k= 1 r= 0
17 × 65359477124183 = 1111111111111111 ( 16 個の1)  k= 16 r= 0
18 × 61728395 = 1111111110 ( 9 個の1)  k= 1 r= 2
19 × 5847953216374269 = 111111111111111111 ( 18 個の1)  k= 18 r= 0
20 × 5 = 100 ( 1 個の1)  k= 1 r= 0
21 × 5291 = 111111 ( 6 個の1)  k= 6 r= 1
22 × 5 = 110 ( 2 個の1)  k= 2 r= 0
23 × 48309178743961352657 = 1111111111111111111111 ( 22 個の1)  k= 22 r= 0
24 × 4625 = 111000 ( 3 個の1)  k= 1 r= 1
25 × 4 = 100 ( 1 個の1)  k= 1 r= 0
26 × 42735 = 1111110 ( 6 個の1)  k= 6 r= 0
27 × 4115226337448559670781893 = 111111111111111111111111111 ( 27 個の1)  k= 1 r= 3
28 × 396825 = 11111100 ( 6 個の1)  k= 6 r= 0
29 × 38314176245210727969348659 = 1111111111111111111111111111 ( 28 個の1)  k= 28 r= 0
30 × 37 = 1110 ( 3 個の1)  k= 1 r= 1
31 × 3584229390681 = 111111111111111 ( 15 個の1)  k= 15 r= 0
32 × 3125 = 100000 ( 1 個の1)  k= 1 r= 0
33 × 3367 = 111111 ( 6 個の1)  k= 2 r= 1
34 × 326797385620915 = 11111111111111110 ( 16 個の1)  k= 16 r= 0
35 × 31746 = 1111110 ( 6 個の1)  k= 6 r= 0
36 × 308641975 = 11111111100 ( 9 個の1)  k= 1 r= 2
37 × 3 = 111 ( 3 個の1)  k= 3 r= 0
38 × 29239766081871345 = 1111111111111111110 ( 18 個の1)  k= 18 r= 0
39 × 2849 = 111111 ( 6 個の1)  k= 6 r= 1
40 × 25 = 1000 ( 1 個の1)  k= 1 r= 0
41 × 271 = 11111 ( 5 個の1)  k= 5 r= 0
42 × 26455 = 1111110 ( 6 個の1)  k= 6 r= 1
43 × 2583979328165374677 = 111111111111111111111 ( 21 個の1)  k= 21 r= 0
44 × 25 = 1100 ( 2 個の1)  k= 2 r= 0
45 × 24691358 = 1111111110 ( 9 個の1)  k= 1 r= 2
46 × 241545893719806763285 = 11111111111111111111110 ( 22 個の1)  k= 22 r= 0
47 × 23640661938534278959810874704491725768321513 = 1111111111111111111111111111111111111111111111 ( 46 個の1)  k= 46 r= 0
48 × 23125 = 1110000 ( 3 個の1)  k= 1 r= 1
49 × 2267573696145124716553287981859410430839 = 111111111111111111111111111111111111111111 ( 42 個の1)  k= 42 r= 0
50 × 2 = 100 ( 1 個の1)  k= 1 r= 0
51 × 2178649237472766884531590413943355119825708061 = 111111111111111111111111111111111111111111111111 ( 48 個の1)  k= 16 r= 1
52 × 213675 = 11111100 ( 6 個の1)  k= 6 r= 0
53 × 20964360587 = 1111111111111 ( 13 個の1)  k= 13 r= 0
54 × 20576131687242798353909465 = 1111111111111111111111111110 ( 27 個の1)  k= 1 r= 3
55 × 2 = 110 ( 2 個の1)  k= 2 r= 0
56 × 1984125 = 111111000 ( 6 個の1)  k= 6 r= 0
57 × 1949317738791423 = 111111111111111111 ( 18 個の1)  k= 18 r= 1
58 × 191570881226053639846743295 = 11111111111111111111111111110 ( 28 個の1)  k= 28 r= 0
59 × 18832391713747645951035781544256120527306967984934086629 = 1111111111111111111111111111111111111111111111111111111111 ( 58 個の1)  k= 58 r= 0
60 × 185 = 11100 ( 3 個の1)  k= 1 r= 1
61 × 1821493624772313296903460837887067395264116575591985428051 = 111111111111111111111111111111111111111111111111111111111111 ( 60 個の1)  k= 60 r= 0
62 × 17921146953405 = 1111111111111110 ( 15 個の1)  k= 15 r= 0
63 × 1763668430335097 = 111111111111111111 ( 18 個の1)  k= 6 r= 2
64 × 15625 = 1000000 ( 1 個の1)  k= 1 r= 0
65 × 17094 = 1111110 ( 6 個の1)  k= 6 r= 0
66 × 16835 = 1111110 ( 6 個の1)  k= 2 r= 1
67 × 1658374792703150912106135986733 = 111111111111111111111111111111111 ( 33 個の1)  k= 33 r= 0
68 × 1633986928104575 = 111111111111111100 ( 16 個の1)  k= 16 r= 0
69 × 1610305958132045088566827697262479871175523349436392914653784219 = 111111111111111111111111111111111111111111111111111111111111111111 ( 66 個の1)  k= 22 r= 1
70 × 15873 = 1111110 ( 6 個の1)  k= 6 r= 0
71 × 156494522691705790297339593114241 = 11111111111111111111111111111111111 ( 35 個の1)  k= 35 r= 0
72 × 1543209875 = 111111111000 ( 9 個の1)  k= 1 r= 2
73 × 152207 = 11111111 ( 8 個の1)  k= 8 r= 0
74 × 15 = 1110 ( 3 個の1)  k= 3 r= 0
75 × 148 = 11100 ( 3 個の1)  k= 1 r= 1
76 × 146198830409356725 = 11111111111111111100 ( 18 個の1)  k= 18 r= 0
77 × 1443 = 111111 ( 6 個の1)  k= 6 r= 0
78 × 14245 = 1111110 ( 6 個の1)  k= 6 r= 1
79 × 14064697609 = 1111111111111 ( 13 個の1)  k= 13 r= 0
80 × 125 = 10000 ( 1 個の1)  k= 1 r= 0
81 × 1371742112482853223593964334705075445816186556927297668038408779149519890260631 = 111111111111111111111111111111111111111111111111111111111111111111111111111111111 ( 81 個の1)  k= 1 r= 4
82 × 1355 = 111110 ( 5 個の1)  k= 5 r= 0
83 × 133868808567603748326639892904953145917 = 11111111111111111111111111111111111111111 ( 41 個の1)  k= 41 r= 0
84 × 132275 = 11111100 ( 6 個の1)  k= 6 r= 1
85 × 130718954248366 = 11111111111111110 ( 16 個の1)  k= 16 r= 0
86 × 12919896640826873385 = 1111111111111111111110 ( 21 個の1)  k= 21 r= 0
87 × 1277139208173690932311621966794380587484035759897828863346104725415070242656449553 = 111111111111111111111111111111111111111111111111111111111111111111111111111111111111 ( 84 個の1)  k= 28 r= 1
88 × 125 = 11000 ( 2 個の1)  k= 2 r= 0
89 × 124843945068664169787765293383270911360799 = 11111111111111111111111111111111111111111111 ( 44 個の1)  k= 44 r= 0
90 × 12345679 = 1111111110 ( 9 個の1)  k= 1 r= 2
91 × 1221 = 111111 ( 6 個の1)  k= 6 r= 0
92 × 1207729468599033816425 = 111111111111111111111100 ( 22 個の1)  k= 22 r= 0
93 × 1194743130227 = 111111111111111 ( 15 個の1)  k= 15 r= 1
94 × 118203309692671394799054373522458628841607565 = 11111111111111111111111111111111111111111111110 ( 46 個の1)  k= 46 r= 0
95 × 11695906432748538 = 1111111111111111110 ( 18 個の1)  k= 18 r= 0
96 × 115625 = 11100000 ( 3 個の1)  k= 1 r= 1
97 × 1145475372279495990836197021764032073310423825887743413516609392898052691867124856815578465063 = 111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 ( 96 個の1)  k= 96 r= 0
98 × 11337868480725623582766439909297052154195 = 1111111111111111111111111111111111111111110 ( 42 個の1)  k= 42 r= 0
99 × 1122334455667789 = 111111111111111111 ( 18 個の1)  k= 2 r= 2
100 × 1 = 100 ( 1 個の1)  k= 1 r= 0

 

Re: 0と1からなるnの倍数

 投稿者:山中和義  投稿日:2013年 1月21日(月)12時41分40秒
  > No.2963[元記事へ]

> 問題
> 全ての自然数n対して必ず0と1からなるnの倍数が存在する

関連問題
nは2,5を約数にもたない自然数とする。
ある自然数mをかけると、n*m=11…1(1が並ぶ数)とすることができる。

類題
nは2,5を約数にもたない自然数とする。
ある自然数mをかけると、n*m=99…9(9が並ぶ数)とすることができる。

答え
a>bとして、10^a-10^bを考える。
これは、数字9が(a-b)個並び、その後数字0がb個並んだ数9…90…0となり、9の倍数である。
鳩ノ巣原理より、1,10,10^2,…,10^9nのうち、9nで割った余りが等しいものがある。
そこで、a,bを10^aと10^bが9nで割って同じ余りとなるものとすると、10^a-10^bは9nの倍数であり、
1が(a-b)個並ぶ数は、(10^a-10^b)/(2^b*5^b*3^2)と表されて、nの倍数となる。
よって、1をある個数並べてnの倍数を作ることができる。
(終り)


OPTION ARITHMETIC RATIONAL !多桁整数

FOR n=1 TO 100

   LET t=9*n !10^0,10^1,10^2,…,10^9nとして、
   FOR b=0 TO t-1 !9nで割った余りが等しいものを探す
      LET W=modpow(10,b,t)
      FOR a=b+1 TO t
         IF modpow(10,a,t)=W THEN EXIT FOR
      NEXT a
      IF a<=t THEN EXIT FOR
   NEXT b
   IF b<=t-1 THEN !条件を満たすa,bで

   !!PRINT 10^a-10^b !debug
      LET nm=(10^a-10^b)/3^2 !1が並ぶ数 + 0が並ぶ数
      PRINT n;"×"; nm/n; "="; nm

   END IF

NEXT n

END


EXTERNAL FUNCTION modpow(a,n,b) !a^n≡x mod b のxを返す ※nは非負整数
OPTION ARITHMETIC RATIONAL !多桁の整数
LET S=MOD(1,b)
DO WHILE n>0 !べき乗nを2進展開する
   IF MOD(n,2)=1 THEN LET S=MOD(S*a,b) !ビットが1なら計算する
   LET a=MOD(a*a,b)
   LET n=INT(n/2)
LOOP
LET modpow=S
END FUNCTION

 

戻る