湘潭大学oj1098质数求法我出错了吗

湘潭大学oj 1098
Description
给定两个非负整数a,b,其中0<= a,b<=1,000,000,请计算这两个数之间有多少个素数。
输入
第一行是一个整数K(1<=K<=1000),表示有多少个样例,每个样例占一行,是两个整数a和b,每个整数之间用一个空格隔开。
输出
每行输出一个样例的结果。
Sample Input
2
2 3
17 19
Sample Output
2
2
Source
ericxie


我的
#include<stdio.h>
int main()
{
    int a, b;
    int n, K = 0;
    scanf_s("%d", &K);
    for (n = 0; n < K; n++)
    {
        scanf_s("%d %d", &a, &b);
        int i, cot = 0;
        for (i = a; i <= b; i++) 
        {
            if (i == 2 || i == 3 || i == 5 || i == 7)
                cot++;
            else if (i%2!=0&&i % 3 != 0 && i % 5 != 0 && i % 7 != 0&&i>10)
            {
                cot++;
            }
            
            
        }
        printf("%d\n", cot);
    }
    return 0;
}

我的思路是这样的:特殊对待一位数的质数用,高位数的奇数且不能被357整除的就是质数。
我试了十几例数都没有问题,但网站给我报Wrong Answer。
我想知道我错在哪了
ps:代码给我显示正文错误提交不了,所以截了下图

供参考:https://blog.csdn.net/weixin_43966538/article/details/106255569

你的输出和例题的输出不一样。可能时这个原因给你报错


我的
#include<stdio.h>
int main()
{
    int a, b;
    int n, K = 0;
    scanf_s("%d", &K);
    for (n = 0; n < K; n++)
    {
        scanf_s("%d %d", &a, &b);
        int i, cot = 0;
        for (i = a; i <= b; i++) 
        {
            if (i == 2 || i == 3 || i == 5 || i == 7)
                cot++;
            else if (i%2!=0&&i % 3 != 0 && i % 5 != 0 && i % 7 != 0&&i>10)
            {
                cot++;
            }
            
            
        }
        printf("%d\n", cot);
    }
    return 0;
}