Форум » Обработка символьных строк » Не сходится ответ к задаче 5828 » Ответить

Не сходится ответ к задаче 5828

totoutka: Вот как выглядит моя программа, выдаёт число 93084. Дальше заменил Это число на букву, и посчитал, сколько раз она встречается. В чем не прав?) [pre2] s = open("C:/Users/user/Downloads/24-234.txt").readline() a = 0 b = 1 maxi = 0 for i in range(len(s) - 4): b = s + s[i+1] + s[i+2] + s[i+3] + s[i+4] b = int(b) if b <= 100000 and b == (int(s)** 5 + int(s[i+1]) ** 5 + int(s[i+2]) ** 5 + int(s[i+3]) ** 5 + int(s[i+4]) ** 5) and a<b: a = b s = s.replace('93084', 'A') for g in range(len(s)): if s[g] == 'A': maxi += 1 print(a, maxi) [/pre2]

Ответов - 3

totoutka: totoutka пишет: Собственно проверил все числа от 1 до 100000(не превышающих 10 в шестой => не превышающих 100000, а 100000 нам не подходит, поэтому смело можем проверять все числа от 10000 до 99999. И да, максимальным таким числом оказалось число 93084, программу прикрепляю: [pre2] a = 0 for i in range(10000, 100000): if i == ((i//10000) ** 5 + ((i//1000)%10) ** 5 +((i//100)%10) ** 5 +((i//10)%10) ** 5 +(i%10) ** 5) and a<i: a = i print(a) [/pre2]

Aleksey6819: (Д. Статный) Текстовый файл 24-234.txt состоит не более чем из 106 символов и содержит только десятичные цифры. Определите такое максимальное число, не превышающее 106, в котором сумма всех цифр, возведенных в степень, равную длине числа, равна самому числу. В ответе укажите количество повторений этого числа в файле. [pre2] st = open('24-234.txt').readline() lst=[] for x in range(1000000,0,-1): cym=0 a=str(x) for i in a: cym+=int(i)**len(a) if cym==x: lst.append(x) for ch in lst: if st.count(str(ch))>0: print(st.count(str(ch))) break [/pre2] Число- 548834, повторяется 1 раз.

Дмитрий Статный: totoutka [pre2] f = open('24-234.txt').readline() for i in range(1_000_000, 100_000, -1): if sum(int(str(i)[j])**len(str(i)) for j in range(len(str(i)))) == i: print(i) print(f.count(str(i))) #548834 #1 [/pre2] 10**6 - 1_000_000




полная версия страницы