Problem:


Score : 500 points

Problem Statement

We have N integers. The i-th number is A_i.

\{A_i\} is said to be pairwise coprime when GCD(A_i,A_j)=1 holds for every pair (i, j) such that 1\leq i < j \leq N.

\{A_i\} is said to be setwise coprime when \{A_i\} is not pairwise coprime but GCD(A_1,\ldots,A_N)=1.

Determine if \{A_i\} is pairwise coprime, setwise coprime, or neither.

Here, GCD(\ldots) denotes greatest common divisor.

Constraints

2 \leq N \leq 10^6

1 \leq A_i\leq 10^6

Input

Input is given from Standard Input in the following format:

N
A_1 \ldots A_N

Output

If \{A_i\} is pairwise coprime, print pairwise coprime; if \{A_i\} is setwise coprime, print setwise coprime; if neither, print not coprime.

Sample Input 1

3
3 4 5

Sample Output 1

pairwise coprime

GCD(3,4)=GCD(3,5)=GCD(4,5)=1, so they are pairwise coprime.

Sample Input 2

3
6 10 15

Sample Output 2

setwise coprime

Since GCD(6,10)=2, they are not pairwise coprime. However, since GCD(6,10,15)=1, they are setwise coprime.

Sample Input 3

3
6 10 16

Sample Output 3

not coprime

GCD(6,10,16)=2, so they are neither pairwise coprime nor setwise coprime.



Sample input:
3
3 4 5


Sample output:
pairwise coprime

Submission status: Wrong Answer

Solution code:
from math import gcd

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

c=max(A)
D=[0]*(c+1)
div=[0]*(c+1)
P=[]

for i in range(2,c+1):
    if D[i]==0:
        P.append(i)
        D[i]=i
    for j in P:
        if i*j>c  or j>D[i] :
           break
        D[i*j]=j

for i in A:
    c=gcd(c,i)
    if i==1:
        continue
    temp=i
    if temp==D[temp]:
        div[temp]+=1
        continue
    while temp!=D[temp]:
        div[D[temp]]+=1
        temp=temp//D[temp]



if max(div)<=1:
    print('pairwise coprime')

elif c==1:
    print('setwise coprime')

else:
    print('not coprime')

Submission status: Wrong Answer

Solution code:
from math import gcd

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

c=max(A)
D=[0]*(c+1)
div=[0]*(c+1)
P=[]

for i in range(2,c+1):
    if D[i]==0:
        P.append(i)
        D[i]=i
    for j in P:
        if i*j>c:
           break
        D[i*j]=j

for i in A:
    c=gcd(c,i)
    if i==1:
        continue
    temp=i
    if temp==D[temp]:
        div[temp]+=1
        continue
    while temp!=D[temp]:
        div[D[temp]]+=1
        temp=temp//D[temp]

if max(div)<=1:
    print('pairwise coprime')

elif c==1:
    print('setwise coprime')

else:
    print('not coprime')

Submission status: Wrong Answer

Solution code:
n=int(input())
A=[int(x) for x in input().split()]

def gcd(a,b):
   while a%b:
     a,b=b,a%b
   return b

S=set()
for n in A:
  if n%2==0:
    if 2 in S:
      break
    else:
      S.add(2)
  while n%2==0:
    n//=2
  f=3
  o=False
  while f*f<=n:
    if n%f==0:
      if f in S:
        o=True
        break
      else:
        S.add(f)
    while n%f==0:
      n//=f
    f+=2
  if o==True:
    break
  if n!=1:
    S.add(n)
else:
  print('pairwise coprime')
  exit()

c=A[0]
for n in A:
  c=gcd(c,n)
  if c==1:
    print('setwise coprime')
    exit()

print('not coprime')

Submission status: Wrong Answer

Solution code:
n=int(input())
A=[int(x) for x in input().split()]

def gcd(a,b):
   while a%b:
     a,b=b,a%b
   return b

S=set()
for n in A:
  if n%2==0:
    if 2 in S:
      break
    else:
      S.add(2)
  while n%2==0:
    n//=2
  f=3
  o=False
  while f*f<=n:
    if n%f==0:
      if f in S:
        o=True
        break
      else:
        S.add(f)
    while n%f==0:
      n//=f
    f+=2
  if o==True:
    break
  if n!=1:
    S.add(n)
else:
  print('pairwise coprime')
  exit()

c=A[0]
for n in A:
  c=gcd(c,n)
  if c==1:
    print('setwise coprime')
    exit()

print('not comprime')

Submission status: Wrong Answer

Solution code:
# compiled by pythran
"""
#pythran export main2()
import numpy as np
i4 = np.int32
i8 = np.int64


def get_primes(p):
    N = p.shape[0]
    n_max = int(np.sqrt(N - 1)) + 1
    p[0] = 1
    p[1] = 1
    for i in range(2, n_max):
        if p[i] == 0:
            j = i * 2
            while j < N:
                p[j] = i
                j += i


def gcd(a, b):
    '''Computes the greatest common divisor of integers a and b using
    Euclid's Algorithm.
    '''
    while b != 0:
        a, b = b, a % b
    return a


def solve(A):
    a = np.sort(A)
    g = a[0]
    for i in range(1, a.shape[0]):
        g = gcd(a[i], g)
    if g > 1:
        return 2
    p_max = a[-1]
    p = np.zeros(p_max + 1, i8)
    get_primes(p)
    primes = np.where(p == 0)[0]
    a_start = 0
    while a[a_start] == 1:
        a_start += 1
        if a_start == a.shape[0]:
            return 0
    a = a[a_start: ]
    if len(a) > len(primes):
        return 1
    check = np.zeros(p_max + 1, i8)
    stack = np.empty(20, i8)
    p_stack = 0
    for d in a:
        x = p[d]
        while x > 0:
            for i in range(p_stack):
                if stack[p_stack] == x:
                    break
            else:
                stack[p_stack] = x
                p_stack += 1
            d //= x
            x = p[d]

        for i in range(p_stack):
            if stack[p_stack] == d:
                break
        else:
            stack[p_stack] = d
            p_stack += 1

        while p_stack > 0:
            p_stack -= 1
            check[stack[p_stack]] += 1

    if check.max() > 1:
        return 1
    else:
        return 0


def main(in_file):
    stdin = open(in_file)
    stdin.readline()
    A = np.array([int(x) for x in stdin.readline().split()])
    ans = solve(A)
    p = ['pairwise coprime', 'setwise coprime', 'not coprime']
    print(p[ans])


def main2():
    main('/dev/stdin')
"""
import os, sys
p = os.path.dirname(__file__)
pymain = os.path.join(p, "a.out")
if len(sys.argv) == 1:
    import subprocess
    if p == "":
        pymain = "./" + pymain
    subprocess.call(pymain)
else:
    import gzip, base64, stat
    gz = b'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'
    bin = gzip.decompress(base64.b64decode(gz))
    with open(pymain, "wb") as f:
        f.write(bin)
    os.chmod(pymain, 0o775)