Source code for kyu_6.no_arithmetic_progressions.sequence

#  Created by Egor Kostan.
#  GitHub: https://github.com/ikostan
#  LinkedIn: https://www.linkedin.com/in/egor-kostan/


[docs]def sequence(n: int) -> int: """ A function f(n), which returns the n-th member of sequence. Consider a sequence, which is formed by the following rule: next term is taken as the smallest possible non-negative integer, which is not yet in the sequence, so that no 3 terms of sequence form an arithmetic progression. Example: f(0) = 0 -- smallest non-negative f(1) = 1 -- smallest non-negative, which is not yet in the sequence f(2) = 3 -- since 0, 1, 2 form an arithmetic progression f(3) = 4 -- neither of 0, 1, 4, 0, 3, 4, 1, 3, 4 form an arithmetic progression, so we can take smallest non-negative, which is larger than 3 f(4) = 9 -- 5, 6, 7, 8 are not good, since 1, 3, 5, 0, 3, 6, 1, 4, 7, 0, 4, 8 are all valid arithmetic progressions. :param n: :return: """ return 0
[docs]def sum_of_arithmetic_progression(a: int, dif: int, terms: int = 3) -> int: # Sum of an Arithmetic Progression return terms * (a + general_term_of_arithmetic_progression(a, dif)) // 2
[docs]def general_term_of_arithmetic_progression(a: int, dif: int, terms: int = 3) -> int: # General Term of an Arithmetic Progression return a + (terms - 1) * dif