コード例 #1
0
int main(int argc, char* argv[])
{
	std::list<long> primes;
	primes.emplace_back(2);
	long maxp = 2;
	while(primes.size()<number)
	{
		maxp = findNextPrime(primes,maxp);
	}
	std::cout<<maxp<<std::endl;
}
コード例 #2
0
Ind primeFactor(std::list<Ind>& primes, Ind n)
{
	for(auto iter = primes.begin(); iter != primes.end(); ++ iter)
	{
		if((n%(*iter))==0)
			return *iter;
	}
	Ind maxPrime = primes.back();
	while(maxPrime*maxPrime<n)
	{
		maxPrime = findNextPrime(primes,maxPrime);
		if((n%maxPrime)==0)
			return maxPrime;
	}
	return n;
}
コード例 #3
0
ファイル: prob3.c プロジェクト: abaillargeon/PEuler
int main(){
	//double upperBound = 13195;
	double upperBound = 600851475143 ;
	int ub = sqrt(upperBound);
	int i = 1;
	int j = 0;
	int currentHighest = 0;
	unsigned int pList[500000];
	unsigned int pFactors[100];
	pList[0] = 2;
	
	
	
	//while(pList[i]<ub){
	while(i<50000){
		pList[i] = findNextPrime(pList[i-1],pList,i);
		if(fmod(upperBound,pList[i]) == 0){
			//currentHighest = pList[i];
			pFactors[j] = pList[i];
			j++;
		}
		if(i%200==0){printf("%d\n",i);}
		i++;


	}
	
	
	
	
	
	for(i=0;i<j;i++){
		printf("%d\n",pFactors[i]);
	}
	
	return 0;
}