Cod sursa(job #2313703)

Utilizator badea_adi1999Badea Adrian Catalin badea_adi1999 Data 7 ianuarie 2019 12:51:39
Problema Pairs Scor 0
Compilator py Status done
Runda Arhiva de probleme Marime 1.07 kb
vmax = 1000000
my_file = open("pairs.in", "r")
n = int(my_file.readline())

p = [ ]
r = [ ]
w = [ ]

for i in range(0, vmax + 1):
    p.append(0)
    r.append(0)
    w.append(0)

i = 2
while i <= vmax:
    if r[ i ] == 0:
        r[ i ] = i
        w[i] = 1
        j = i * 2
        while j < vmax:
            if r[ j ] == 0:
                r[ j ] = i
            w[ j ] += 1
            j += i
    i += 1

for i in range(0, n):
    e = [ ]
    x = int(my_file.readline())
    while x != 1:
        if e.count(r[ x ]) == 0:
            e.append(r[ x ])
        x /= r[ x ]
    for j in range(0, (1 << len(e))):
        x = 1
        for t in range(0, len(e)):
            if (j & (1 << t)) != 0:
                x *= e[ t ]
        if x != 1:
            p[ x ] += 1

nop = long(n * (n - 1))/2
for i in range(2, vmax):
    if p[ i ] != 0:
        if w[ i ] % 2 == 1:
            nop -= p[ i ] * (p[ i ] - 1) / 2
        else:
            nop += p[ i ] * (p[ i ] - 1) / 2

my_writefile = open("pairs.out","w")
my_writefile.write(str(nop))