C语言,输入入2个正整数A和B,然后输出它们之间的素数个数(不包含A,B)

输入格式:
输入正整数A和B,空格分隔。

输出格式:
输出两数间素数的个数(不包括这两个数)。如果输入负数没有输出。

输入样例:
在这里给出一组输入。例如:

10 20
输出样例:
在这里给出相应的输出。例如:

4

img

输出结果是0,不知道为什么

应该是代码逻辑错误,如那里第二个for循环的终止条件要改为小于i,然后判断是否为素数的逻辑也要改一下,修改了一下如下:


#include <stdio.h>

int main(void){
    
    int a,b,c,i,j,t,prime=1;
    int sum=0,count=0;
    scanf("%d %d",&a,&b);
    
    for(i=a;i<=b;i++){
        for(j=2;j<i;j++){
            t=i%j;
            if(t==0){
            //    printf("i=%d,j=%d,count=%d\n",i,j,count);
                prime=0;
                break;
            }
        }
        if(prime==1){
            count++;
        }
        
        prime=1;
                
    }
    
    printf("%d",count);
    return 0;
} 

1.j < b 改成 j< a
2.if(sum==2)改成 (sum == a)

供参考:

#include<stdio.h>
int main() {
    int a, b, c, d = 0, i, e;
    printf("请输入两个数字(a和b):");
    scanf("%d%d", &a, &b);
    if (a > 0 && b > 0)
    {
        for (i = a+1; i < b; i++) {
            c = 2;
            while (c < i) {
                e = i % c;
                if (e == 0) break;
                c++;
            }
            if (c == i && i != 1) d++;
        }
        printf("%d", d);
    }
    return 0;
}