天天看點

簡單容易的求素數(質素)的方法

#include<iostream>
#include<vector>
using namespace std;
vector<int> v;
int prime(int a,int b){
	for(int i=a;i<=b;i++){
		if(i!=2&&i%2==0)continue;//排除掉2的倍數,加快效率
		for(int j=3;j*j<=i;j+=2){//找有沒有因子,隻要找到該數的根号(n)即可,由于懶得去寫j<=sqrt(i),直接寫j*j<i 
			if(i%j==0) goto RT;
		} 
		v.push_back(i);
		RT:continue;
	}
} 
int main(int argc,char *argv[]){
	prime(2,100); 
	for(int i=0;i<v.size();i++){
		cout<<v[i]<<endl;
	} 
	return 0;
} 
           

繼續閱讀