Я делаю простую функцию простого множителя, которая может поместить срез [][]int
, как
prime_factors_mult(315) => [[3,2],[5,1],[7,1]]
, но вместо этого результата я получаю [[7,1][7,1][7,1][7,1]]
, который впоследствии сводится к пустому срезу, потому чтоони повторяют себя.Я попытался взглянуть на него шаг за шагом, и он изменяет все значения до последнего добавления.Что я должен сделать, чтобы избежать этого?
func prime_factors_mult(x []int)(y [][]int){// Problem 36
in :=[]int{0,0}
var k [][]int
for _,item := range x{
tok := 0
for i:=0;i<len(x);i++{
if item == x[i]{
tok++
}
}
in[0]=item
in[1]=tok
k=append(k,in)
}
for _,item := range k{
for i:=0;i<len(k);i++{
if item[0] != k[i][0]{
y = append(y,item)
}
}
}
return
}