primo

C
//devuelve la suma de los divisores de n sin contar n
int sumar_divisores_propios(int n){
  int divisor = 1;
  int suma = 0;

  while(divisor <= n / 2){
    if(n % divisor == 0){
      suma = suma + divisor;
    }
    divisor++;
  }
  printf("Suma: %d\n", suma);

  return suma;
}

//devuelve true si n es primo
//es primo si divisible solo por el mismo y por uno
bool esPrimo(int n){
  bool primo = false;
  if(sumar_divisores_propios(n) == 1){
    primo = true;
    printf("Es primo\n");
  }else{
    printf("No es primo\n");
  }

  return primo;
}

//DESCOMPOSICION DE FACTORES PRIMOS
int numero, divisor = 2;

    printf("Dime un numero y te muestro su descomposicion en factores primos: ");
    scanf("%d", &numero);
    printf("%d = ",numero);

    while ( numero >= divisor ){
         while ( numero % divisor == 0 ) {
             printf("%d ",divisor);
             numero = numero / divisor;
         }
         divisor ++;
    }
    printf("%d",numero);

bool esPrimo(int valor){
	bool es = true;
	int i = 2;
	if(valor <= 1){
		es = false;
	}
	while(i < valor && es){
		if(valor % i == 0){
			es = false;
		}
		else{
			i++;
		}
	}
	return es;
}
Source

Also in C: