printf函数多输入几个汉字就无法运行 谢谢大佬指正

#include <stdio.h>
int main()
{
int count_prime(int n);
int a;
printf("请输入");
scanf("%d",&a);

printf("%d个",count_prime(a));
return 0;

}

int count_prime(int n)
{
int y,i,q,a=0;
for(i=2;i<n+1;i++)
{
q=0;
for(y=2;y<i;y++)

         if(i%y==0)
         q++;
     
     if(q==0)
     {
         a++;
     }
 }
 return a;

}
如果把printf后改为 2~%d范围内有%d个
程序就无法运行了,删掉就可以运行

把错误代码贴出来啊

两个 %d, 你后面的数据,就要传两个
例如:

printf("a=%d,b=%d", a, b);