|
@@ -0,0 +1,35 @@
|
|
|
+fun countDenum(number: Int, denum: Int): Int
|
|
|
+{
|
|
|
+ var count = 0;
|
|
|
+ var curNum = number;
|
|
|
+ val remainder = BooleanArray(1000, {false})
|
|
|
+ remainder[0] = true;
|
|
|
+
|
|
|
+ do {
|
|
|
+ count++;
|
|
|
+ remainder[curNum] = true;
|
|
|
+ curNum *= 10;
|
|
|
+ var intPart = curNum / denum;
|
|
|
+ var tail = curNum - intPart * denum;
|
|
|
+ curNum = tail;
|
|
|
+ } while(!remainder[curNum])
|
|
|
+
|
|
|
+ if(curNum == 0)
|
|
|
+ return 0;
|
|
|
+ return count;
|
|
|
+}
|
|
|
+
|
|
|
+fun main() {
|
|
|
+ var maxLengthNumber = 1;
|
|
|
+ var maxLength = 0;
|
|
|
+ for (i in 2..1000) {
|
|
|
+ val length = countDenum(1,i);
|
|
|
+ if (length > maxLength)
|
|
|
+ {
|
|
|
+ maxLengthNumber = i;
|
|
|
+ maxLength = length;
|
|
|
+ }
|
|
|
+ println("$i, $length");
|
|
|
+ }
|
|
|
+ println("$maxLengthNumber, $maxLength");
|
|
|
+}
|