c++ vector数组的使用 https://www.cnblogs.com/yskn/p/9053161.html(转)
素数判断方法:
1、:#判断从2到number-1的每一个数是否可以被number整除
2、#最小的除数是2,不可能有大于 number/2 的约数的,顺便取整
3、#从约数都是两两一对的,只需要尝试当中一半即可;最合理的是尝试小于其平方根的每个值,即从2到sqrt(number)
4、 如果一个数 C 能被 (a*b) 整除,显然, C%a 或者 C%b 余数都是零,也就是说一个数肯定能被它的约数的约数整除
因此,一切合数作为除数都是重复劳动,综上,只需要判断一个数能否被小于它的平方根的素数整除,故建立素数的数组
#include<iostream>
#include<string>
#include<vector>
#include<math.h>
using namespace std;
int main(){
int num;
cin>>num;
vector<int> primes; //储存素数的容器
primes.push_back(2);
bool isPrime;
for(int i=3;i<=num;i++){
isPrime=true;
for(int j=0;j<primes.size()&&primes[j]<=sqrt(i);j++){
if(i%primes[j]==0){
isPrime=false;
break;
}
//可以被质数整除,则说明为合数
}
if(isPrime){
primes.push_back(i);
}
}
int sum_double=0;
for(int j=1;j<primes.size();j++){
if(primes[j]-primes[j-1]==2)
sum_double++;
}
cout<<sum_double;
}