运行结果为什么显示2

#找出100以内的素数显示的结果为什么只有2
#include
#include
#include
using namespace std;
int main()
{
int a,k,i,n=0;
bool prime;
for(a=2;a<=100;a+=2)
{
prime=true;
k=int(sqrt(a));
for(i=2;i<=k;i++)
if(a%i==0)
{
prime=false;
break;
}
if(prime)
{
cout<<setw(5)<<a;
n=n+1;
}
if(n%10==0) cout<<endl;
}
cout<<endl;
return 0;
}

代码功能归根结底不是别人帮自己看或讲解或注释出来的;而是被自己静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。
提醒:再牛×的老师也无法代替学生自己领悟和上厕所!
单步调试和设断点调试(VS IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)是程序员必须掌握的技能之一。

a+=2有问题,你这样a都是2的倍数了,所以只能输出2,换成a++应该就行了