Comprobar si un número es primo con While en C

#include <stdio.h>
int main()
{
 //Declaramos las variables
 int num, i, resto, esprimo;
 //Leemos el número por teclado
 printf("Introduzca un número: ");
 scanf("%d", &num);
    //Para comprobar si es primo, dividimos por 
 //los números menores que él y mayores 
 //que 1. Si el resto es 0, es que no es primo
 //Inicializo i con el valor del número menos 1 
 i=num-1;
 //Inicializo esprimo a 1 (suponemos que es primo)
 esprimo=1;
 while(i>1)
 {
  //Me quedo con el resto
  resto=num%i;
  //Actualizo el contador
  i--;
  if (resto==0)
  {
   //Si el resto es 0, no es primo
   esprimo=0;
  }
 }
 if(esprimo==0)
  printf("\nEl número %d no es primo\n", num);
 else 
  printf("\nEl número %d  es primo\n", num);
 return 0;

}