c语言,输入整数n,求1~n的所有素数,每输出7个数换行,大神们帮我看看哪错了,求不对。

#include<stdio.h>

int main()
{
int n,a=2,i,d=0,is=1;
scanf("%d",&n);
while(a<=n)
{
for(i=2;i<a&&is;i++)
{
if(a%i==0)
{
is=0;
}
}
if(is==1)
{
d++;
printf("%d",a);

        if(d%7==0)
        {
          printf("\n");
        }
    } 
    a++;
}
    
return 0;

}

#include<bits/stdc++.h>
using namespace std;
int isp(int n)
{
if (n == 2) return 1;
if (n < 2) return 0;
for (int i = 2; i < n / 2; i++)
if (n % i == 0) return 0;
return 1;
}

int main()
{
int m;
int n;
scanf("%d", &n);
int x = 0;
for (int i = 1; i <= n; i++)
{
if (isp(i))
{
printf("%d\t", i);
x++;
if (x % 7 == 0)
printf("\n");
}
}
return 0;
}

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^