Project Euler -03

Yazının öncesinde önemli not: Yazar ileride bu yazının içeriğini kendi kodunu ekleyerek güncellemeyi taahhüt etmektedir.

ProjectEuler’ın 3. sorusunu C++ kullanarak yapmaya çalıştım ama bi süre sonra bişeyler ters gitti, bende netten yardım aldım bu kez. Şimdiye kadar blogumda sadece tek başıma yaptığım şeyler oldu ama bu kez kendi kodum yerine bu kez http://rianjs.net/2011/05/cpp-solution-to-project-euler-problem-3 adresindeki kodu inceledim ve sorunun tamamen bugün dikkatimi kodlamaya yeterince odaklayamamamdan kaynaklandığını gördüm. Kodu yazan abimizde çok temiz yazmış. İşte o kod:

#include 
using namespace std;

long long is_prime(long long n)
{
	//returns 0 if not prime, 1 if prime
	if (n % 2 == 0)
		return 0;		// is even, therefore not prime
	for (long long i = 3; i <= ((n / 2) + 1); i += 2)	// Skip all the even numbers
	{
		if (n % i == 0)
			return 0;	//not prime
	}
	return 1;
}

long long find_bigprime(long long n)
{
	long long factor = 0;
	for(long long i = 3; i <= n; i += 2)
	{
		if (n % i == 0)
		{
			if (is_prime(i))
			{
				factor = i;
				cout << factor << endl;
			}
		}
	}
	return factor;
}

int main()
{
	long long input = 600851475143;
	cout << find_bigprime(input);

	return 0;
}

kendime not: çabuk git canını ne sıktıysa üstesinden gel, kafanı topla, işinle gücünle uğraş. hadi bakıyım.

Yorum bırakın

Filed under Project Euler

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Log Out / Değiştir )

Connecting to %s