# cutting recipes

t=int(input())

``````i=0

if(t<=100):

for i in range(t):

f=[]
f= list(map(int, input().split()))
l=f[0]
if((l>=2)and(l<=50)):
f.remove(f[0])
def gcd(x,y):
rem=x%y
while(rem!=0):
x=y
y=rem
rem=x%y
return y

j=0
for j in range(l-1):
a=gcd(f[j],f[j+1])
if(a==1):
break
new=' '
for j in range(l):
ele=f[j]//a
new+=str(ele)+' '
print(new.strip())
``````

whats wrong with this code!!!

You are calculating the gcd of two consecutive elements in an array but u r supposed to calculate the gcd of all the elements in the given array

change this line

``````    a=gcd(f[j],f[j+1])
``````

to

``````    a=gcd(a,f[j])
``````

where a = f[1] and iterate through complete array

this is ur correted code:

``````t=int(input())
for i in range(t):

f= [int(x) for x in raw_input().split()]
def gcd(x,y):
rem=x%y
while(rem!=0):
x=y
y=rem
rem=x%y
return y
l = f[0]
a = f[1]
for x in f[1:]:
a=gcd(a,x)
if(a==1):
break
new=' '
for j in range(1,l+1):
ele=f[j]//a
new+=str(ele)+' '
print(new.strip())``````
//