давайте возьмем n = 15
Я хочу, чтобы он разбился таким образом, чтобы весь список имел пары простых чисел
, например,
[[2,3,5,7,11,13],[4,9],[8,15],[1,6],[1,10],[1,12],[1,14]]
число подсписков должно быть минимальным
В каждом подсписке есть элементы, которые взаимно просты с другими
Я пробовал это, но есть одна ошибка Может кто-нибудь решить этот вопрос
# cook your dish here
import math
def isprime(x):
for i in range(2,(x//2)+1):
if x%i==0:
return False
return True
def ISP(x):
X=[]
while x% 2 == 0:
X.append(2)
x = x// 2
for i in range(3,x+1,2):
while x % i== 0:
X.append(i)
x = x // i
R=[]
[R.append(x) for x in X if x not in R]
if len(R)==1:
return True
else:
return False
t=int(input())
for i in range(t):
n=int(input())
R=[]
P=[]
A=[]
for i in range(2,n+1):
if isprime(i):
P.append(i)
elif ISP(i):
if len(A):
for j in A:
if j%i==0 or i%j==0:
N=[2,1]
N.append(i)
R.append(N)
else:
A.append(i)
else:
A.append(i)
else:
N=[2,1]
N.append(i)
R.append(N)
A.append(1)
P.insert(0,len(P))
A.insert(0,len(A))
R.append(P)
R.append(A)
print(R)