The statement of the problem can be found here.
Using the same technique as in my previous post to determine whether a number divides a repunit or not, we create a function to find the
A(n) by bruteforcing it.
A(n) can't be greater than n we start searching for the number we are looking for from 1000001. The algorithm is really simple:
from CommonFunctions import * from itertools import * def A(n): i = 2 while (mod_pow(10, i, 9 * n) != 1): i += 1 return i limit = 10 ** 6 if __name__ == '__main__': for n in count(1000001, 2): if str(n)[-1] == '5': continue x = A(n) if x > limit: break print("The result is:", n)