一道素数题
#include <iostream>
#include <vector>
#include <fstream>
using namespace std;
int main()
{
vector <int> prime(10000,1);
for(int i=2;i <100;++i)
if(prime[i])
for(int j=1;i*j <10000;++j)
prime[i*j]=0;
ifstream in( "a.txt ");
for(int a;in> > a && a> 1 && a <10000;)
cout < <a < < " is " < <(prime[a] ? " ": " not ") < < " a prime.\n ";
return 0;
}
我建的文本a.txt中数字有
3
12
101
131
6 为什么最后3被判断为not a prime.
[解决办法]
for(int j=1;i*j <10000;++j)这个循环应该从2开始,改成for(int j=2;i*j <10000;++j)就可以了