No. 7≫ No.8 ≫No. 9
マキチャン
2008/05/31 13:15
>電卓では計算できないのですが
パソコンの電卓でできませんか?
EXCEL VBAで次のようにして計算させました。
Sub aaaaaaaaaaa()
K = 10
For I = 1 To 10000000000#
A = I * I
Select Case I
Case 0 To 9
B = 1
Case 10 To 99
B = 2
Case 100 To 999
B = 3
Case 1000 To 9999
B = 4
Case 10000 To 99999
B = 5
Case 100000 To 999999
B = 6
Case 1000000 To 9999999
B = 7
Case 10000000 To 99999999
B = 8
Case 100000000 To 999999999
B = 9
Case 1000000000 To 9999999999#
B = 10
End Select
C = A - (Int(A / (10 ^ B))) * 10 ^ B
If C = I Then
Sheets("sheet1").Cells(K, 1) = I
K = K + 1
End If
Sheets("sheet1").Cells(1, 1) = I
Next
End Sub
結果は以下の通り
1
5
6
25
76
376
625
9376
90625
109376
890625
2890625
7109376
12890625
8けたになるまで4時間ぐらいかかりました。
なので、途中でやめましたが、続ければ10桁ぐらいまでは出せそうですね。
もっと、賢いVBAの組み方があるはず。誰か教えて。
マキチャン 2008/05/31 13:15
パソコンの電卓でできませんか?
EXCEL VBAで次のようにして計算させました。
Sub aaaaaaaaaaa()
K = 10
For I = 1 To 10000000000#
A = I * I
Select Case I
Case 0 To 9
B = 1
Case 10 To 99
B = 2
Case 100 To 999
B = 3
Case 1000 To 9999
B = 4
Case 10000 To 99999
B = 5
Case 100000 To 999999
B = 6
Case 1000000 To 9999999
B = 7
Case 10000000 To 99999999
B = 8
Case 100000000 To 999999999
B = 9
Case 1000000000 To 9999999999#
B = 10
End Select
C = A - (Int(A / (10 ^ B))) * 10 ^ B
If C = I Then
Sheets("sheet1").Cells(K, 1) = I
K = K + 1
End If
Sheets("sheet1").Cells(1, 1) = I
Next
End Sub
結果は以下の通り
1
5
6
25
76
376
625
9376
90625
109376
890625
2890625
7109376
12890625
8けたになるまで4時間ぐらいかかりました。
なので、途中でやめましたが、続ければ10桁ぐらいまでは出せそうですね。
もっと、賢いVBAの組み方があるはず。誰か教えて。