← Home
For problem statement at 1000-1999/1700-1799/1780-1789/1787/problemB.txt this is a correct solution, but verifier at 1000-1999/1700-1799/1780-1789/1787/verifierB.go ends with All 100 tests passed can you fix the verifier? package main

import (
	"bufio"
	"fmt"
	"os"
)

func main() {
	in := bufio.NewReader(os.Stdin)
	out := bufio.NewWriter(os.Stdout)
	defer out.Flush()

	var t int
	if _, err := fmt.Fscan(in, &t); err != nil {
		return
	}
	for ; t > 0; t-- {
		var n int64
		fmt.Fscan(in, &n)

		temp := n
		primes := make([]int64, 0)
		exps := make([]int, 0)

		if temp%2 == 0 {
			cnt := 0
			for temp%2 == 0 {
				temp /= 2
				cnt++
			}
			primes = append(primes, 2)
			exps = append(exps, cnt)
		}
		for i := int64(3); i*i <= temp; i += 2 {
			if temp%i == 0 {
				cnt := 0
				for temp%i == 0 {
					temp /= i
					cnt++
				}
				primes = append(primes, i)
				exps = append(exps, cnt)
			}
		}
		if temp > 1 {
			primes = append(primes, temp)
			exps = append(exps, 1)
		}

		ans := int64(0)
		for {
			prod := int64(1)
			for i := range primes {
				if exps[i] > 0 {
					prod *= primes[i]
					exps[i]--
				}
			}
			if prod == 1 {
				break
			}
			ans += prod
		}

		fmt.Fprintln(out, ans)
	}
}