Harryxun/testdata huggingface dataset:
Buggy python submission (verdict: Runtime Error):
a = int(input())
b = int(input())
 
if a * b % 2 == 0:
  print("Even")
else:
  print("Odd")

Fixed submission:
a, b = map(int, input().split())
 
if a * b % 2 == 0:
  print("Even")
else:
  print("Odd")

Buggy python submission (verdict: Runtime Error):
a = int(input())
b = int(input())
 
x = a * b
 
if x % 2 == 0:
  print("Even")
else:
  print("Odd")

Fixed submission:
a, b = map(int, input().split())
 
if a * b % 2 == 0:
  print("Even")
else:
  print("Odd")

Buggy python submission (verdict: Runtime Error):
a = int(input())
b = int(input())
 
c = a * b
 
if c % 2 == 0:
  print("Even")
else:
  print("Odd")

Fixed submission:
a, b = map(int, input().split())
 
if a * b % 2 == 0:
  print("Even")
else:
  print("Odd")

Buggy python submission (verdict: Runtime Error):
a = int(input())
b = int(input())
 
x = a * b
 
if x % 2 == 0:
  print("Even")
else:
  print("Odd")

Fixed submission:
a, b = map(int, input().split())
 
if a * b % 2 == 0:
  print("Even")
else:
  print("Odd")

Buggy python submission (verdict: Runtime Error):
a = int(input())
b = int(input())
 
x=a*b
 
if X%2==0;
  print("Even")
else;
  print("Odd)

Fixed submission:
a, b = map(int, input().split())
 
if a * b % 2 == 0:
  print("Even")
else:
  print("Odd")

Buggy python submission (verdict: Runtime Error):
a = int(input())
b = int(input())

x=a*b

if X%2==0:
  print("Even")
else:
  print("Odd)

Fixed submission:
a, b = map(int, input().split())
 
if a * b % 2 == 0:
  print("Even")
else:
  print("Odd")
Buggy python submission (verdict: Runtime Error):
N = int(input())
t, x, y = map(int, input().split())
if t < x+y :
  print("NO")
elif t%2 != p%2:
  print("NO")
else:
  print("YES")

Fixed submission:
n = int(input())
 
s = 0
p = 0
for _ in range(n):
  t,x,y = map(int, input().split())
  s = t - s
  p = abs((x+y)-p)
  if s < p:
    print("No")
    exit()
  elif s%2 != p%2:
    print("No")
    exit()
print("Yes")
Buggy python submission (verdict: Runtime Error):
N,Y = map(int, input().split())
for i in range(N+1):
  for j in range(N+1-i):
    if Y==i*10000+j*5000+(N-i-j)*1000:
      print(i,j,(n-i-j))
      exit()
print('-1 -1 -1')

Fixed submission:
n,y = map(int, input().split())
for i in range(n+1):
  for j in range(n+1-i):
    if y==i*10000+j*5000+(n-i-j)*1000:
      print(i,j,(n-i-j))
      exit()
print('-1 -1 -1')

Buggy python submission (verdict: Runtime Error):
N,Y = map(int, input().split())
for i in range(N+1):
  for j in range(N+1-i):
    if Y==i*10000+j*5000+(N-i-j)*1000:
      print(i,j,(n-i-j))
      exit()
print('-1 -1 -1')

Fixed submission:
n,y = map(int, input().split())
for i in range(n+1):
  for j in range(n+1-i):
    if y==i*10000+j*5000+(n-i-j)*1000:
      print(i,j,(n-i-j))
      exit()
print('-1 -1 -1')
Buggy python submission (verdict: Runtime Error):
print(input().count(1))

Fixed submission:
print(input().count("1"))

Buggy python submission (verdict: Runtime Error):
s1,s2,s3 = map(int, input().split())

x = s1 + s2 +s3

print(x)

Fixed submission:
print(input().count("1"))
Buggy python submission (verdict: Runtime Error):
r g b = map(int, input().split())
x = r*100+g*10+b
if x%4==0:
  print("YES")
else:
  print("NO")

Fixed submission:
r,g,b= map(int, input().split())
x = r*100+g*10+b
if x%4==0:
  print("YES")
else:
  print("NO")
Buggy python submission (verdict: Runtime Error):
N=input()
if len(N) >3:
  i=(int(N[:-3])+1)*1000
else:
  i=N
 
j=i-int(N)
 
elif j>999:
  print(0)
else:
  print(j)

Fixed submission:
N=input()
if len(N)>3:
    i=(int(N[:-3])+1)*1000
else:
    i=1000

j=i-int(N)

if j>999:
  print(0)
else:
  print(j)

Buggy python submission (verdict: Runtime Error):
N=input()
i=(int(N[:-3])+1)*1000


j=i-int(N)

if j>999:
  print(0)
else:
  print(j)


Fixed submission:
N=input()
if len(N)>3:
    i=(int(N[:-3])+1)*1000
else:
    i=1000

j=i-int(N)

if j>999:
  print(0)
else:
  print(j)

Buggy python submission (verdict: Runtime Error):
N=input()
i=(int(N[:-3])+1)*1000
j=i-int(N)

if j==1000:
  print(0)
else:
  print(j)

Fixed submission:
N=input()
if len(N)>3:
    i=(int(N[:-3])+1)*1000
else:
    i=1000

j=i-int(N)

if j>999:
  print(0)
else:
  print(j)
Buggy python submission (verdict: Time Limit Exceeded):
N=int(input())
A=list(map(int,input().split()))

out=[]
i =0
while i < N:
    out.append(i)
    for j,a in enumerate(A):
        if i!=j and A[i]%a==0:
            out.pop()
            break
    i += 1
print(len(out))

Fixed submission:
N=int(input())
A=list(map(int,input().split()))

dp = [0] * (10**6+1)

for a in A:
    dp[a] += 1

for i in range(1, len(dp)):
    if dp[i]:
        for j in range(i+i, len(dp), i):
            dp[j] = 0
print(dp.count(1))
Buggy python submission (verdict: Runtime Error):
import collections

def main():
    n, m = map(int, input().split())
    g = [[] for i in range(m)]
    for i in range(m):
        a, b = map(int, input().split())
        a, b = a - 1, b - 1
        g[a].append(b)
        g[b].append(a)
    ans = solve(n, m, g)
    if -1 in ans:
        print('No')
    else:
        print('Yes')
        print(*ans, sep = '\n')


def solve(n, m, g):
    q = collections.deque()
    distances = [-1 for i in range(n)]
    ans  = [-1 for i in range(n)]
    distances[0] = 0
    q.append(0)
    while len(q):
        pos = q.popleft()
        for i in g[pos]:
            if distances[i] == -1:
                q.append(i)
                distances[i] = distances[pos] + 1
                ans[i] = pos + 1
    return ans[1:]


if __name__ == '__main__':
    main()

Fixed submission:
import collections

def main():
    n, m = map(int, input().split())
    g = [[] for i in range(n)]
    for i in range(m):
        a, b = map(int, input().split())
        a, b = a - 1, b - 1
        g[a].append(b)
        g[b].append(a)
    ans = solve(n, m, g)
    if -1 in ans:
        print('No')
    else:
        print('Yes')
        print(*ans, sep = '\n')


def solve(n, m, g):
    q = collections.deque()
    distances = [-1 for i in range(n)]
    ans  = [-1 for i in range(n)]
    distances[0] = 0
    q.append(0)
    while len(q):
        pos = q.popleft()
        for i in g[pos]:
            if distances[i] == -1:
                q.append(i)
                distances[i] = distances[pos] + 1
                ans[i] = pos + 1
    return ans[1:]


if __name__ == '__main__':
    main()
Buggy python submission (verdict: Time Limit Exceeded):
import math
import functools

k = int(input())
k = k+1
ans = 0
for i in range(1,k):
	for j in range(1,k):
		for kk in range(1,k):
			ans += functools.reduce(math.gcd, [i,j,kk])
print(ans)

Fixed submission:
import math

def solve(n):
    n = n+1
    ans = 0
    for i in range(1,n):
        for j in range(1,n):
            tmp = math.gcd(i, j)
            for k in range(1,n):
                ans += math.gcd(tmp, k)
    return ans

def main():
    k = int(input())
    print(solve(k))

if __name__ == '__main__':
    main()
Buggy python submission (verdict: Runtime Error):
n, m = map(int, input().split())
a = list(map(int, input().split()))
a.sort(reverse = True)
print('Yes' if a[m-1] >= 1/4M else 'No')


Fixed submission:
n, m = map(int, input().split())
a = list(map(int, input().split()))
a.sort(reverse = True)
print('Yes' if a[m-1] >= sum(a)/4/m else 'No')
Buggy python submission (verdict: Runtime Error):
def equ(a,b):
  return 1*(a==b)
a,b,c = map(input().split())
ans = equ(a,b)+equ(b,c) +equ(c,a)
print('Yes' if ans ==1 else 'No')


Fixed submission:
def equ(a,b):
  return 1*(a==b)
a,b,c = map(int,input().split())
ans = equ(a,b)+equ(b,c) +equ(c,a)
print('Yes' if ans ==1 else 'No')
Buggy python submission (verdict: Time Limit Exceeded):
import math

def main():
    n = int(input())
    s = input()
    ans = solve(n, s)
    print(ans)


def solve(n, s):
    ans = 0
    for i in range(n - 1):
        tmp = Z(s[i:])
        tmp = tmp[math.ceil(len(tmp) / 2):]
        if len(tmp):
            ans = max(ans, max(tmp))
        #print(tmp)
    return ans

def Z(s):
    l = len(s)
    ans = [l for _ in range(l)]

    i, j = 1, 0
    while i < l:
        while i + j < l and s[j] == s[i + j] :
            j += 1
        ans[i] = j

        if j == 0:
            i += 1
            continue

        k = 1
        while k < j and k + ans[k] < j:
            ans[i + k] = ans[k]
            k += 1
        i += k
        j -= k
    return ans

if __name__ == '__main__':
    main()

Fixed submission:
import math

def main():
    n = int(input())
    s = input()
    ans = solve(n, s)
    print(ans)


def solve(n, s):
    ans = 0
    for i in range(n - 1):
        tmp = Z(s[i:])
        t = [min(tmp[j], j)for j in range(n - i)]
        ans = max(ans, max(t))
        #print(tmp)
    return ans

def Z(s):
    l = len(s)
    ans = [l for _ in range(l)]

    i, j = 1, 0
    while i < l:
        while i + j < l and s[j] == s[i + j] :
            j += 1
        ans[i] = j

        if j == 0:
            i += 1
            continue

        k = 1
        while k < j and k + ans[k] < j:
            ans[i + k] = ans[k]
            k += 1
        i += k
        j -= k
    return ans

if __name__ == '__main__':
    main()
Buggy python submission (verdict: Runtime Error):
a=input()
s=input()
if a<3200:
  print('red')
else:
  print(s)

Fixed submission:
a=int(input())
s=input()
if a<3200:
  print('red')
else:
  print(s)
Buggy python submission (verdict: Runtime Error):
k,x=map(int,input().split())
start,end=max(-100_0000,x-(k-1)),min(100_0000,x+(k-1))
r=range(start,end+1)
print(*r,sep=' ')

Fixed submission:
n,k=map(int,input().split())
ra=range(max(-1000000,k-(n-1)),min(1000000+1,k+(n-1)+1))
li=[i for i in ra]
print(*li,sep=' ')
Buggy python submission (verdict: Time Limit Exceeded):
R,G,B,n=map(int,input().split())
sum_rg=[]
for r in range(n+1):
	for g in range(n+1):
		Rr,Gg=R*r,G*g
		if Rr+Gg>n:
			break
		else:
			sum_rg.append(n-Rr-Gg)
count=0
for i in sum_rg:
	if not i%B:
		count+=1
print(count)

Fixed submission:
R,G,B,n=map(int,input().split())
sum_rg=[0 for i in range(n+1)]
for r in range(n+1):
	for g in range(n+1):
		tmp=R*r+G*g
		if tmp>n:
			break
		else:
			#print(f'Bb:{n-tmp}')
			sum_rg[n-tmp]+=1
#print(sum_rg)
count=0
for i in range(n//B+1):
	count+=sum_rg[i*B]
print(count)
Buggy python submission (verdict: Runtime Error):
import fractions
from functools import reduce

def gcd_list(numbers):
	return reduce(fractions.gcd,numbers)

n=int(input())
hp=list(map(int,input().split()))
print(gcd_list(hp))

Fixed submission:
a,b=map(int,input().split())
if b%a:
  print(b-a)
else:
  print(b+a)
Buggy python submission (verdict: Runtime Error):
n=int(input())
l=list(map(int,imput().split()))
lmax=max(l)
if lmax<sum(l)-lmax:
	print('Yes')
else:
	print('No')

Fixed submission:
n=int(input())
l=list(map(int,input().split()))
lmax=max(l)
if lmax<sum(l)-lmax:
	print('Yes')
else:
	print('No')
Buggy python submission (verdict: Runtime Error):
import sys
buf=sys.stdin.read()
n=int(buf[0])
h=list(map(int,buf[1].split()))

dp=[0 for i in range(n+1)]
dp[1]=h[0]
for i in range(2,n):
	dp[i+1]=min(dp[i]+abs(h[i]-h[i+11]),dp[i-1]+abs(h[i-1]-h[i+1]))
print(dp[n])

Fixed submission:
def main():
    n = int(input())
    h = [int(i) for i in input().split()]
    ans = solve(n, h)
    print(ans)


def solve(n, h):
    dp =[0 for _ in range(n)]
    dp[1] = dp[0] + abs(h[1] - h[0])
    for i in range(1, n - 1):
        dp[i + 1] = min(dp[i] + abs(h[i + 1] - h[i]), dp[i - 1] + abs(h[i + 1] - h[i - 1]))
    return dp[n - 1]


if __name__ == '__main__':
    main()
Buggy python submission (verdict: Runtime Error):
n,m=map(int,input().split())
li=[[] for i in range(n+1)]

for i in range(m):
	j,k=map(int,input().split())
	li[j].append(k)

for i in range(1,m):
	li[i].sort()
	for j in li[i]:
		print(str(i).zfill(6)+str(j).zfill(6))

Fixed submission:
def main():
    n, m = map(int, input().split())
    p, y = [0 for i in range(m)], [0 for i in range(m)]
    for i in range(m):
        p[i], y[i] = map(int, input().split())
    ans = solve(n, m, p, y)


def solve(n, m, p, y):
    kens = [[] for i in range(n + 1)]
    for i in range(m):
        kens[p[i]].append(y[i])
    for ken in kens:
        ken.sort()
    
    #id 生成
    ids = [{} for i in range(n + 1)]
    for indken, ken in enumerate(kens):
        for indsi, yi in enumerate(ken, 1):
            ids[indken][yi] = str(indken).zfill(6) + str(indsi).zfill(6)
    
    #出力
    for i in range(m):
        print(ids[p[i]][y[i]])

    return

if __name__ == '__main__':
    main()
Buggy python submission (verdict: Runtime Error):
n=input()
k=int(input())
c=0
for i in range(len(n)):
	if n[i] is '1':
		c+=1
	else:
		break

print(n[c])

Fixed submission:
n=input()
k=int(input())
c=0
for i in range(len(n)):
	if n[i] is '1':
		c+=1
	else:
		break

if c>=k:
	print('1')
else:
	print(n[c])

Buggy python submission (verdict: Runtime Error):
n=input()
k=int(input())
for i in range(k):
	n=n.strip('1')
print(n[0])

Fixed submission:
n=input()
k=int(input())
c=0
for i in range(len(n)):
	if n[i] is '1':
		c+=1
	else:
		break

if c>=k:
	print('1')
else:
	print(n[c])
Buggy python submission (verdict: Runtime Error):
r=int(input())
if r>=2800:
  print('AGC')
 elif r>=1200:
  print('ARC')
 else:
  print('ABC')


Fixed submission:
r=int(input())
if r>=2800:
	print('AGC')
elif r>=1200:
	print('ARC')
else:
	print('ABC')
Buggy python submission (verdict: Runtime Error):
def solve(s):
    if s[0]!='A':
        return 'WA'
    if s[3:len(s)-1].count('C')!=1:
        return 'WA'
    s=s.split('A').split('C')
    if not s.islower():
        return 'WA'
    return 'AC'
  
s=input()
print(solve(s))
    	


Fixed submission:
def solve(s):
    if s[0]!='A':
        return 'WA'
    if s[2:len(s)-1].count('C')!=1:
        return 'WA'
    s=str(s.split('A'))
    s=str(s.split('C'))
    if not s.islower():
        return 'WA'
    return 'AC'

s=input()
print(solve(s))

Buggy python submission (verdict: Runtime Error):
def solve(s):
    if s[0]!='A':
        return 'WA'
    if s[3:len(s)-1].count('C')!=1:
        return 'WA'
    s=s.split('A').split('C')
    if not s.islower():
        return 'WA'
    return 'AC'
  
s=input()
print(solve(s))
    	


Fixed submission:
def solve(s):
    if s[0]!='A':
        return 'WA'
    if s[2:len(s)-1].count('C')!=1:
        return 'WA'
    s=str(s.split('A'))
    s=str(s.split('C'))
    if not s.islower():
        return 'WA'
    return 'AC'

s=input()
print(solve(s))

Buggy python submission (verdict: Runtime Error):
def solve(s):
    if s[0]!='A':
        return 'WA'
    if s[3:len(s)-1].count('C')!=1:
        return'WA'
    s=s.split('A').split('C')
    if not s.islower():
        return'WA'
    return'AC'
  
s=input()
print(solve(s))
    	


Fixed submission:
def solve(s):
    if s[0]!='A':
        return 'WA'
    if s[2:len(s)-1].count('C')!=1:
        return 'WA'
    s=str(s.split('A'))
    s=str(s.split('C'))
    if not s.islower():
        return 'WA'
    return 'AC'

s=input()
print(solve(s))

Buggy python submission (verdict: Runtime Error):
def solve(s):
	if s[0]!='A':
    	return 'WA'
    if s[3:len(s)-1].count('C')!=1:
    	return 'WA'
    s=s.split('A').split('C')
    if not s.islower():
    	return 'WA'
    return 'AC'
  
s=input()
print(solve())
    	

Fixed submission:
def solve(s):
    if s[0]!='A':
        return 'WA'
    if s[2:len(s)-1].count('C')!=1:
        return 'WA'
    s=str(s.split('A'))
    s=str(s.split('C'))
    if not s.islower():
        return 'WA'
    return 'AC'

s=input()
print(solve(s))
Buggy python submission (verdict: Runtime Error):
s=input()
t=input()
if t in [s[i:]+s[:i] for i in range(len(s)]:
	print('Yes')
else:
	print('No')

Fixed submission:
s=input()
t=input()
if t in [s[i:]+s[:i] for i in range(len(s))]:
	print('Yes')
else:
	print('No')
Buggy python submission (verdict: Runtime Error):
n=input()
numbers=list(map(int,input().split()))
count=0
for i in range(1,n):
  if numbers[i] is numbers[i+1]:
    count+=1
print(count)

Fixed submission:
n=int(input())
numbers=list(map(int,input().split()))
count=1
c=0
for i in range(n-1):
  if numbers[i] is numbers[i+1]:
    count+=1
  else:
  	c+=count//2
  	count=1
if count-1:
	c+=count//2
print(c)
Buggy python submission (verdict: Runtime Error):
def main():
    n = int(input())
    a = [int(i) for i in input().split()]
    ans = solve(n, a)
    print(*ans)


def solve(n, a):
    m = 8
    colors = [0 for i in range(m + 1)]
    for i in range(n):
        for j in range(m):
            if a[i] < 400 * (j + 1):
                colors[j] += 1
                break
        else:
            colors[m] += 1
    usedcolors = sum([1 for i in colors[:m] if i > 0])
    ans = [max(1,usedcolors), min(usedcolors + colors[m])]

    return ans


if __name__ == '__main__':
    main()

Fixed submission:
def main():
    n = int(input())
    a = [int(i) for i in input().split()]
    ans = solve(n, a)
    print(*ans)


def solve(n, a):
    m = 8
    colors = [0 for i in range(m + 1)]
    for i in range(n):
        for j in range(m):
            if a[i] < 400 * (j + 1):
                colors[j] += 1
                break
        else:
            colors[m] += 1
    usedcolors = sum([1 for i in colors[:m] if i > 0])
    ans = [max(1,usedcolors), usedcolors + colors[m]]

    return ans


if __name__ == '__main__':
    main()
Buggy python submission (verdict: Runtime Error):
def main():
    n, k = map(int, input().split())
    a, b = [0 for i in range(n)], [0 for i in range(n)]
    for i in range(n):
        x, y = input().split()
        a[i], b[i] = x, int(y)
    ans = solve(n, k, a, b)
    print(ans)


def solve(n, k, a, b):
    s = ''
    for i in range(n):
        s += a[i] * b[i]
    return s[k - 1]


if __name__ == '__main__':
    main()

Fixed submission:
def main():
    n, k = map(int, input().split())
    a, b = [0 for i in range(n)], [0 for i in range(n)]
    for i in range(n):
        a[i], b[i] = [int(x) for x in input().split()]
    ans = solve(n, k, a, b)
    print(ans)


def solve(n, k, a, b):
    ab = [[a[i], b[i]] for i in range(n)]
    ab.sort(key = lambda x:x[0])
    back = 0
    for i in range(n):
        back += ab[i][1]
        if back >= k:
            return ab[i][0]
    return 


if __name__ == '__main__':
    main()
Buggy python submission (verdict: Time Limit Exceeded):
import sys

n = int(input())

ai = []
for i in range(0, n):
    ai.append(int(input()))

count = 0
iter = 0
r = 1

if len(ai) == 1:
    print(ai[0] - 1)
    sys.exit()

while True:
    if iter == 0 and ai[0] > 1:
        ai[0] -= 1
        count += 1
    else:
        while ai[iter] <= r + 1:
            r = max(r, ai[iter])
            iter += 1
            if iter >= len(ai):
                print(count)
                sys.exit()
        if ai[iter] - (r + 1) == r + 1:
            ai[iter] = 1
            count += 1
        else:
            ai[iter] -= r + 1
            count += 1

Fixed submission:
import sys

n = int(input())

ai = []
for i in range(0, n):
    ai.append(int(input()))

count = 0
iter = 0
r = 1

if len(ai) == 1:
    print(ai[0] - 1)
    sys.exit()

while True:
    if iter == 0 and ai[0] > 1:
        count += ai[0] - 1
        ai[0] = 1
    else:
        while ai[iter] <= r + 1:
            r = max(r, ai[iter])
            iter += 1
            if iter >= len(ai):
                print(count)
                sys.exit()
        div = int(ai[iter] / (r + 1))
        mod = ai[iter] % (r + 1)
        if mod == 0:
            count += div - 1
            ai[iter] = 1
        else:
            count += div
            ai[iter] = mod
Buggy python submission (verdict: Runtime Error):
def multiple_sum(x, n):
    # x + 2x + ... + kx(<= n)
    k = n // x
    return x * (k + 1) * k // 2


def solve(N: int):
    ans = 0
    for i in range(1, N + 1):
        ans += multiple_sum(i, N)
    print(ans)
    return


# Generated by 1.1.7.1 https://github.com/kyuridenamida/atcoder-tools  (tips: You use the default template now. You can remove this line by using your custom template)
def main():
    def iterate_tokens():
        for line in sys.stdin:
            for word in line.split():
                yield word

    tokens = iterate_tokens()
    N = int(next(tokens))  # type: int
    solve(N)


if __name__ == "__main__":
    main()


Fixed submission:
#!/usr/bin/env python3
import sys
def multiple_sum(x, n):
    # x + 2x + ... + kx(<= n)
    k = n // x
    return x * (k + 1) * k // 2


def solve(N: int):
    ans = 0
    for i in range(1, N + 1):
        ans += multiple_sum(i, N)
    print(ans)
    return


# Generated by 1.1.7.1 https://github.com/kyuridenamida/atcoder-tools  (tips: You use the default template now. You can remove this line by using your custom template)
def main():
    def iterate_tokens():
        for line in sys.stdin:
            for word in line.split():
                yield word

    tokens = iterate_tokens()
    N = int(next(tokens))  # type: int
    solve(N)


if __name__ == "__main__":
    main()
Buggy python submission (verdict: Runtime Error):
#!/usr/bin/env python3

from sympy import factorint


def parse(n):
    # n -> largest m s.t. m(m+1)/2 <= n
    m = 1
    while m * (m + 1) <= 2 * n:
        m += 1
    return m - 1


def factorint(n):
    fct = []
    b, e = 2, 0
    while b * b <= n:
        while n % b == 0:
            n = n // b
            e = e + 1
        if e > 0:
            fct.append((b, e))
        b, e = b + 1, 0
    if n > 1:
        fct.append((n, 1))
    return fct


def main():
    N = int(input())
    factors = factorint(N)
    print(sum(parse(v) for _, v in factors))
    return


if __name__ == "__main__":
    main()


Fixed submission:
#!/usr/bin/env python3


def parse(n):
    # n -> largest m s.t. m(m+1)/2 <= n
    m = 1
    while m * (m + 1) <= 2 * n:
        m += 1
    return m - 1


def factorint(n):
    fct = []
    b, e = 2, 0
    while b * b <= n:
        while n % b == 0:
            n = n // b
            e = e + 1
        if e > 0:
            fct.append((b, e))
        b, e = b + 1, 0
    if n > 1:
        fct.append((n, 1))
    return fct


def main():
    N = int(input())
    factors = factorint(N)
    print(sum(parse(v) for _, v in factors))
    return


if __name__ == "__main__":
    main()

Buggy python submission (verdict: Runtime Error):
#!/usr/bin/env python3

from sympy import factorint


def parse(n):
    # n -> largest m s.t. m(m+1)/2 <= n
    m = 1
    while m * (m + 1) <= 2 * n:
        m += 1
    return m - 1


def main():
    N = int(input())
    factors = factorint(N)
    print(sum(parse(v) for _, v in factors.items()))
    return


if __name__ == "__main__":
    main()


Fixed submission:
#!/usr/bin/env python3


def parse(n):
    # n -> largest m s.t. m(m+1)/2 <= n
    m = 1
    while m * (m + 1) <= 2 * n:
        m += 1
    return m - 1


def factorint(n):
    fct = []
    b, e = 2, 0
    while b * b <= n:
        while n % b == 0:
            n = n // b
            e = e + 1
        if e > 0:
            fct.append((b, e))
        b, e = b + 1, 0
    if n > 1:
        fct.append((n, 1))
    return fct


def main():
    N = int(input())
    factors = factorint(N)
    print(sum(parse(v) for _, v in factors))
    return


if __name__ == "__main__":
    main()