#coding=utf-8 import sys defprime_sieve(n): """返回所有小于 n 的质数""" sieve = [True] * (n // 2) for i in range(3, int(n**0.5) + 1, 2): if sieve[i // 2]: sieve[i *i // 2::i] = [False] * ((n - i * i - 1) // (2 * i) + 1) return [2] + [2 * i + 1for i in range(1, n // 2) if sieve[i]]
n = int(sys.stdin.readline().strip())
primes = prime_sieve(n + 1) data = {p: 1for p in primes} defhelp(n): if n == 1: return0 if n in data: return data[n] i, n0 = 0, n ans = 0 whilenot ans: c, p = 0, primes[i] while n % p == 0: c += 1 n = n // p if c: ans = c + help(n) i += 1 data[n0] = ans return ans
ans = 0 for m in range(2, n + 1): ans += help(m) print ans
#coding=utf-8 import sys board = [] for _ in range(9): board.append(sys.stdin.readline().strip())
defhelp(board): board_t = zip(*board) for i in range(3): for j in range(3): if i == j: for k in range(3): col = [n for n in board[3*i+k] if n!='X'] if len(col) != len(set(col)): returnFalse row = [n for n in board_t[3*i+k] if n!='X'] if len(row) != len(set(row)): returnFalse block = set() for k in range(3): for s in board[3*i+k][3*j:3*j+3]: if s != 'X': if s in block: returnFalse block.add(s) returnTrue