← Home
For problem statement at 1000-1999/1600-1699/1640-1649/1646/problemE.txt this is a correct solution, but verifier at 1000-1999/1600-1699/1640-1649/1646/verifierE.go ends with All 100 tests passed. can you fix the verifier? package main

import (
	"fmt"
)

func main() {
	var n, m int
	if _, err := fmt.Scan(&n, &m); err != nil {
		return
	}

	if n == 1 {
		fmt.Println(1)
		return
	}

	ans := int64(1)
	visited := make([]bool, n+1)

	f := make([]int64, 20)
	seen := make([]bool, 20*m+1)
	count := int64(0)

	for k := 1; k < 20; k++ {
		for y := 1; y <= m; y++ {
			if !seen[k*y] {
				seen[k*y] = true
				count++
			}
		}
		f[k] = count
	}

	for i := 2; i <= n; i++ {
		if !visited[i] {
			k := 0
			for p := int64(i); p <= int64(n); p *= int64(i) {
				visited[p] = true
				k++
			}
			ans += f[k]
		}
	}

	fmt.Println(ans)
}