如何用c++求10000000之内的素数?

用c++求10000000之内的素数,分别列出,每行十个
这里我想用
#include
int main()
{
int n,y,i,v=0;
scanf("%d",&n);
for(y=2;y<=n;y++)
{
for(i=2;i*i<=y;i++)
{
if(y%i==0)break;
}
if(i*i>y)
{
//printf("%d、",y);
v++;
}
}
printf("共%d个素数\n",v);
return 0;
}
类似这样的代码,但这是c语言的代码用在c++上面总是报错
说是scanf这个函数的问题
请问怎么修改