Estou com dúvida no seguinte problema:
Fazer uma função FATORES que:
a. Recebe 3 parâmetros: um vetor de inteiros, um número inteiro n passado por valor e
outro número x passado como ponteiro.
b. Retorna um número inteiro.
c. Decompõe o número n em fatores primos e armazena-os nas posições do vetor. O
conteúdo de x deve receber o número de fatores primos encontrados. Caso o número de
fatores encontrados seja maior que 10, a função deve retornar 1, do contrário deve
retornar 0.
Fiz um código aqui mas não sei se está muito errado, poderiam me ajudar?
#include <bits/stdc++.h>
using namespace std;
int n, vet[15], j;
int FATORES(int vet[], int n, int *x){
int cont1=0, cont2=0;
for(int j=1; j<=n; j++){
if(n % j == 0) cont1++;
}
if(cont1 == 2){
for(int j=0; j<15;j++) vet[j] = n;
cont2++;
}
x = vet;
cont1 = 0;
if(cont2 > 10) return 1;
else return 0;
}
int main(){
int q, *x, y;
cin >> q;
for(int i=1; i<=q; i++){
scanf("%d",&n);
y = FATORES(vet,n,x);
for(int i=0; i<15; i++)
printf("%d\n",*(vet + j));
}
return 0;
}