这个判断素数的代码到底哪里错了,看了好久没看出来

#include
#include
int main(){
    int m,limit,is_prime,i;
    
    scanf ("%d", &m);
    if(m<=0){
        is_prime = 0;
    }else{
        if ( m == 1) {
            is_prime = 0; 
        } else if (m == 2) {
               is_prime = 1; 
         } else if (m % 2 == 0) {
            is_prime = 0;
        } else{
            is_prime = 1; 
            limit = sqrt(m) + 1;
            for(i = 3; i <= limit; i += 2){
                if(m % i == 0){
                    is_prime = 0; 
                    break;
                }
            }
            }
    }    
    if(is_prime = 1) 
    {
    printf("Yes\n");  
    }else{ 
    printf("No\n"); 
    }
}

最后一个if的条件写成赋值了