Home > Numbers
Maximum Palindrome Count Muse (Posted on 2022-06-07) |
|
A 3-digit decimal (base ten) Palindrome P is such that when expressed in base N, with N being a positive integer between 2 and 36 inclusively (base 10 excluded), at least one of them is also a palindrome.
M denotes the total count of such non base ten palindrome for a given value of decimal palindrome P.
Which value or values of P maximises the value of M?
No Solution Yet
|
Submitted by K Sengupta
|
Rating: 5.0000 (1 votes)
|
|
No Subject
|
| Comment 1 of 3
|
I get: Pmax is 252 Mmax is 5
252 yields 5 palindromes when changed to other bases as follows: (base, palindrome): {(5, 2002), (17, EE), (20, CC), (27, 99), (35, 77)} in addition to base 10 (10, 252)
Here is the list of 3 digit palindromes and the number of "other base" palindromes for each: 101:0, 111:2, 121:3, 131:0, 141:1, 151:1, 161:1, 171:2, 181:1, 191:2, 202:0, 212:1, 222:2, 232:2, 242:3, 252:5, <---- winner, winner, chicken dinner 262:0, 272:1, 282:2, 292:2, 303:0, 313:2, 323:2, 333:2, 343:3, 353:2, 363:1, 373:3, 383:0, 393:1, 404:0, 414:2, 424:0, 434:2, 444:2, 454:1, 464:3, 474:0, 484:2, 494:2, 505:2, 515:0, 525:2, 535:0, 545:1, 555:3, 565:1, 575:2, 585:2, 595:3, 606:0, 616:2, 626:3, 636:0, 646:2, 656:2, 666:4, 676:4, 686:1, 696:1, 707:0, 717:2, 727:1, 737:2, 747:0, 757:3, 767:1, 777:2, 787:3, 797:2, 808:0, 818:1, 828:2, 838:2, 848:1, 858:3, 868:2, 878:0, 888:2, 898:2, 909:1, 919:2, 929:1, 939:1, 949:1, 959:0, 969:0, 979:2, 989:3, 999:2
whichPals(252) Outputs: [[5, '2002'], [17, 'EE'], [20, 'CC'], [27, '99'], [35, '77']]
---------- def base2base(n,a,b): """ input n which is a string of the number to be changed 'a' is an integer representing the current base to be changed to base b """ def dec2base(i,base): """ INPUT integer in base 10, return string of Base base equivalent. """ convertString = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ' if i < base: return convertString[i] else: return dec2base(i//base,base) + convertString[i%base] if a == 10: return dec2base(int(n),b) if b == 10: return int(str(n),a) elif b != 10: return base2base(int(str(n),a),10,b)
def isPalindrome(n): """ return True if integer or string n is a palindrome """ n = str(n) if n == n[::-1]: return True else: return False
def npals(p): if not isPalindrome(p): return 0 m = 0 for base in range(2,37): if base == 10: continue x = base2base(p,10,base) if isPalindrome(x): m += 1 return m
def whichPals(p): if not isPalindrome(p): return 0 m = 0 answer = [] for base in range(2,37): if base == 10: continue x = base2base(p,10,base) if isPalindrome(x): answer.append([base, x]) m += 1 return answer
ans = {} # generate a dictionary shown above for i in range(100,1000): if not isPalindrome(i): continue ans[i] = npals(i)
|
Posted by Larry
on 2022-06-07 10:06:07 |
|
|
Please log in:
Forums (0)
Newest Problems
Random Problem
FAQ |
About This Site
Site Statistics
New Comments (0)
Unsolved Problems
Top Rated Problems
This month's top
Most Commented On
Chatterbox:
|