素数判断并且记数求和

问题遇到的现象和发生背景

输入格式:

输入在一行中给出2个正整数M和N(1<=M<=N<=500)。

输出格式:

在一行中顺序输出M和N区间内素数的个数以及它们的和,数字间以空格分隔。

问题相关代码,请勿粘贴截图

#include
int main(){
int M,N;
scanf("%d %d",&M,&N);

int x=M+1;
int sum=0;
int cishu=0;
int sushu=0 ;
int chushu=2;
for(x=M+1;xx++){
    for(chushu=2;chushu<x;chushu++){
        if(x%chushu==0){
        sushu=1;
        }
    ;}

    
    
    
    /*如果是素数*/
    if(sushu==0){
    sum+=x;
    cishu++;
    printf("x=%d,cishu=%d\n",x,cishu);}
    
;}
printf("%d %d",cishu,sum);


return 0;

}

运行结果及报错内容

只有 2和3 被运算为素数

sushu这个变量在内层循环之前没有清零,所以当执行到4时它变成1了就变不回来了
那么你后面判断它是0的时候永远都是1