#include#include #include using namespace std;const int MAX=1000001;bool isPrime[MAX];//isPrime[i]=true表示是素数,false表示不是int indexes[MAX]; //存放素数因子的序号void eraosthenes(){ fill(isPrime,isPrime+MAX,true);//如果0~MAX都是素数 isPrime[0]=isPrime[1]=false; //把0,1筛去 int n=sqrt((double)MAX); for(int i=2; i<=n; i++) { if (isPrime[i]==false) continue; for(int j=i*i; j