Divisori primi

/*Scrivere una funzione che preso in input un numero positivo n stampi tutti i suoi
divisori primi (numeri primi che dividono n).*/
/* http://juni0rblog.blogspot.com/ */
/* juni0r87@yahoo.it */

#include

void divisoriprimi(int a);
int controllaprimo(int b);

int main()
{
int x;
scanf("%d", &x);
divisoriprimi(x);
return 0;
}

void divisoriprimi(int a)
{
int i;
int j;


/* controllo i divisori */
for (i=2; i<=a; i++)
{
/* se i è divisore... */
if (a%i == 0)
{
/* controllo se il divisore è primo */
if (controllaprimo(i) != 0)
printf("%d ",i);

}
}
}

/* funzione che controlla se un numero è primo */
int controllaprimo(int b)
{
int j=2;
while (b%j!=0)
{
j++;
}
if (j==b)
return b;
else
return 0;

}

Commenti