Problemas para calcular o maior int primo em C

Olá.

Estou tentando calcular o maior número primo que caiba em uma
variável int. A minha ideia foi começar pelo maior int, e ir checando em
ordem decrescente até encontrar o primeiro número primo. Quando tento
executar o programa recebo a mensagem: “maiorprimo.exe parou de
funcionar. O Windows está verificando uma solução para o problema.”

Segue o código:

 #include <stdio.h>
 #include <limits.h>

 int main(){
     int primo=0;
     int num=INT_MAX;
     for(num; num>0; num--){
         primo=ePrimo(num);
         if(primo==1){
             printf("%d eh primo" ,num);
             break;
         }
     }
 }

 int ePrimo(int n){
     int i;
     int cont;
     for(i=0; i<=n; i++){
         if(n%i==0){
             cont++;
         }
     }
     if(cont==2)
         return 1;
     else
         return 0;
 }

Olá Rafael_Andre_Oliveir vamos lá.
Primeiro o maior valor que cabe no int é muito grande e precisa de muita memória no computador para realizar os cálculos. Tente fazer com um número menor.
O seu código precisa de uns ajustes também, como inicializar variável cont dentro da função ePrimo e também na função ePrimo você está fazendo uma divisão por 0 (zero) o que não existe fazendo com que de erro de execução.

Segue modificações que fiz no seu código:

int main(){
    int primo=0;
    int num=20;
    for(num; num>0; num--){
        primo=ePrimo(num);
        if(primo==1){
            printf("%d eh primo\n" ,num);
        }   
    }
     system("pause");
}

int ePrimo(int n){
    int i;
    int cont=0;
    for(i=1; i<=n; i++){
       if(n%i==0){
         cont++;
       }
    }
    if(cont==2)
        return 1;
    else
        return 0;
 }

O comando system("pause") serve para evitar da janela de executável feche assim que terminar os cálculos.