A, B, N = gets.split.map(&:to_i) MOD = 10 ** 9 + 7 def dfs(i, v) return v if i == N return v if v == 1 res = 1 A.upto(B) do |n| res *= dfs(i + 1, v.gcd(n)) res %= MOD end res end ans = 1 A.upto(B) do |v| ans *= dfs(1, v) ans %= MOD end puts ans