样例都过了但是还是提交错,实在看不到哪里有缺陷,请问应该在哪里改进?

某天ly正在707学习,突然听到楼下yyt在大声的叫:"sgly(以下再重复三句)",聪明的ly稍加思索便意识到了这是在叫他,但是ly却很生气,并且删除了

yyt的好友。

对此xiayufengchen感到非常不解,但是他也不敢多问。随后ly说出了自己生气的原因:“他叫了四次sgly,他是在骂我傻瓜ly!!”

,听到这里,xiayufengchen明白过来了,

原来ly是个”素数迷“,痴迷于所有的素数,就连别人叫他名字的次数也一定要是素数,这样ly就会认为这是在夸他。”
?谁听到自己被骂傻瓜会开心呢?“。

想到这里,xiayufengchen也生气的删掉了yyt的好友,但是一年一度的招新时间到了,找sgly的人多了起来,xiayufengchen想要快速的判断出,别人叫sgly的次

数是不是素数,你能帮他吗?
输入格式

输入包含一个整数n表示某个人大声喊出的字数 下一行包含一个含有n个字符的字符串,表示某人大声喊出的话
输出格式

如果叫sgly的次数为素数的话,会使ly感到开心,请输出”happy“(不加双引号) 如果叫sgly的次数不是素数的话,会使ly感到生气,请输出”angry“(不加双引号)
样例
样例输入

12
sglyabcdsgly

样例输出
happy

数据范围与提示

4<=N<=1000;(保证n一定是4的倍数) 某人喊出的话不一定只有sgly,可能会是这样:”sglyabcdsgly“。
以下是我写的答案:

#include<stdio.h>
#include<bits/stdc++.h>
using namespace std;
char a[1005];
int main() {
    int n,count=0,flag;
    scanf("%d",&n);
    for(int i=0; i<n+1; i++) {
        scanf("%c",&a[i]);
    }
    for(int i=0; i<n+1; i++) {
        if(a[i]=='s'&&a[i+1]=='g'&&a[i+2]=='l'&&a[i+3]=='y') {
            count++;
        }
    }
    if(count==0||count==1) {
        flag=0;
    } else if(count==2) {
        flag=1;

    } else {
        for(int i=2; i<count; i++) {
            if(count%i==0) {
                flag=0;
                break;
            } else {
                flag=1;
            }
        }
    }
    if(flag==1) {
        printf("happy\n");
    } else if(flag==0) {
        printf("angry\n");
    }
    return 0;
}

修改如下,供参考:

#include<stdio.h>
#include<string.h>
//#include<bits/stdc++.h>
using namespace std;
char a[1005];
int main() {
    int i, n, len, count = 0, flag = 1;
    scanf("%d", &n);
    scanf("%s", a);
    len = strlen(a);
    if (len == n) {
        for (i = 0; i <= n - 4; i++) {   //for (int i = 0; i < n + 1; i++)
            if (a[i] == 's' && a[i + 1] == 'g' && a[i + 2] == 'l' && a[i + 3] == 'y') {
                count++;
                i += 3;
            }
        }
        if (count <= 1) {
            flag = 0;
        }
        else if (count == 2) {
            flag = 1;
        }
        else {
            for (int i = 2; i < count; i++) {
                if (count % i == 0) {
                    flag = 0;
                    break;
                }
            }
        }
        if (flag == 1) {
            printf("happy\n");
        }
        else if (flag == 0) {
            printf("angry\n");
        }
    }
    else
        printf("input error.\n");
    return 0;
}