```go
package main
import (
"bufio"
"fmt"
"os"
)
func gcd(a, b int64) int64 {
for b != 0 {
a, b = b, a%b
}
return a
}
func main() {
in := bufio.NewReader(os.Stdin)
out := bufio.NewWriter(os.Stdout)
defer out.Flush()
var t int
fmt.Fscan(in, &t)
const mod int64 = 1000000007
for i := 0; i < t; i++ {
var n int64
fmt.Fscan(in, &n)
ans := n % mod
lcm := int64(1)
for j := int64(1); ; j++ {
g := gcd(lcm, j)
lcm = (lcm / g) * j
if lcm > n {
break
}
term := (n / lcm) % mod
ans = (ans + term) % mod
}
fmt.Fprintln(out, ans)
}
}
```