Postanowiłem, że jednak zacznę się na poważniej uczyć programowania, a jako że dawno niczego sensownego nie napisałem, pomyślałem że rozwiązywanie zadań z ProjectEuler.net będzie dobrym rozwiązaniem. Mam zamiar zrobić przynajmniej 150 zadań, a później się wezmę za coś bardziej praktycznego.
Pierwotnie będę pisał w C++, być może jeszcze w przyszłości, jeśli zacznę się uczyć jakiegoś innego języka (mam w planach Pythona), może się to zmienić.
Szczerze zachęcam wszystkich zainteresowanych do zamieszczania swoich rozwiązań oraz komentowania moich (co można było lepiej, prościej, efektywniej zrobić).
Proponuję kod zamieszczać za tagiem [spoiler], żeby nie psuć przypadkiem nikomu zabawy.
//ehh, jednak [spoiler] nie działa na [code]. Może ma ktoś jakieś inne rozwiązanie?
Na początek zamieszczę rozwiązania pierwszych pięciu zadań, resztę będę progresywnie dopisywał.
int euler1(int granica) // wywolaj euler1(1000);
{
//If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23.
//Find the sum of all the multiples of 3 or 5 below 1000.
int sum = 0;
int multiplier = 0;
do{
sum += multiplier * 3;
multiplier++;
}while(multiplier * 3 < granica);
int euler2(long int granica) // euler2(4000000);
{
//Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be:
//1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
//By considering the terms in the Fibonacci sequence whose values do not exceed four million, find the sum of the even-valued terms.
long int suma=0;
long int bufor=0;
int pomoc[2]={1,1};
int euler3(unsigned long int liczba) // euler3(600851475143)
{
//The prime factors of 13195 are 5, 7, 13 and 29.
//What is the largest prime factor of the number 600851475143 ?
int start=2; // pierwszy dzielnik = 2
vector<int> factors;
string euler4(void)
{
//A palindromic number reads the same both ways. The largest palindrome made from the product of two 2-digit numbers is 9009 = 91 × 99.
//Find the largest palindrome made from the product of two 3-digit numbers.
int x=999;
int y=999;
int iloczyn=0;
string pomoc;
string wynik;
int prawa,lewa;
int euler5(int granica)
{
//troche dlugo działa bo bruteforce
//2520 is the smallest number that can be divided by each of the numbers from 1 to 10 without any remainder.
//What is the smallest positive number that is evenly divisible by all of the numbers from 1 to 20?