# Project Euler: 1, 2, 3 One of the stumbling blocks I have is I feel I am quite out of programming for a change. I tried to do different jobs, was doing my best, yet they happened to end.

Nothing was said that I did things badly, I just didn’t fit in with everyone. Due to that? I really need to get into my programming habits again. I do work externally for a company, it is just slow due to my stumbling blocks…

This brought me to look at bringing a few different sides back into my programming side. It felt slightly bad that I just couldn’t get back into it. I know of lists of places where you can “learn to code” and figured I would take a look. It just happened to be something I didn’t really feel into much.

Reading through my old code projects I saw that I did some Project Euler questions at random before, I looked through it and figured that will be the place to get back into it. I would go I should look up how to work with the Math functions in C# again and such. It just happened to fit.

I figured, it is a good thing to make sure I am spending time on answering questions in coding. So, I figure, I should do roughly 3 problems per post that brings it in for me to fill my gaps. I would also love to hear what people think about my solutions, and how I can make them better.

Problem 1

Multiples of 3 and 5.

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.

Project Euler – Problem 1
``````        static void Main(string[] args)
{
var watch = new System.Diagnostics.Stopwatch();

watch.Start();
for (int i = 1; i < 1000; i++)
{
float j = (float)i;
float k = j / 3;
float l = j / 5;
if (Math.Round(k) * 3 == j || Math.Round(l) * 5 == j)
{
}
}
watch.Stop();
Console.WriteLine(@"     Exec: " + watch.ElapsedTicks.ToString() + " ticks");

watch = new System.Diagnostics.Stopwatch();
watch.Start();
for (int i = 0; (i * 3) < 1000; i++)
{
var j = i * 3;
}
for (int i = 0; (i * 5) < 1000; i++)
{
var j = i * 5;
}
for (int i = 0; i < answerset.Count; i++)
{
}
watch.Stop();
Console.WriteLine(@"     Exec: " + watch.ElapsedTicks.ToString() + " ticks");
}``````

You will note here I have 2 answers here, running one after the other. I answered it the cheapest way, then figured why not make it slightly better and more efficient?

Problem 2

Even Fibonacci Numbers

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.

Project euler – problem 2
``````        static void Main(string[] args)
{
var watch = new System.Diagnostics.Stopwatch();
watch.Start();

int a = 1;
int b = 2;
int c = 0;
while (a < 4000000)
{
if (Math.Floor(a / 2.0) * 2 == a)

c = a + b;
a = b;
b = c;
}

watch.Stop();
Console.WriteLine(@"     Exec: " + watch.ElapsedMilliseconds.ToString() + " ms");
}``````

Problem 3

Largest Prime Factor

The prime factors of 13195 are 5, 7, 13 and 29.
What is the largest prime factor of the number 600851475143 ?

Project Euler – problem 3
``````        static void Main(string[] args)
{
var watch = new System.Diagnostics.Stopwatch();

watch.Start();

List<int> primes = new List<int>();

double check = 600851475143;
int index = 1;
while (check > 1)
{
// Start at 2
index++;
bool isPrime = true;
for (int i = 0; i < primes.Count; i++)
{
if (Math.Floor((double)index / primes[i]) * primes[i] == index * primes[i])
{
isPrime = false;
}
}
if (isPrime)
{

double a = Math.Floor(check / index);
double b = a * index;
double q = b - check;
bool c = (a * index) - check == 0;
while (c)
{
check /= index;
a = Math.Floor(check / index);
b = a * index;
c = (a * index) - check == 0;
Console.WriteLine(" - " + index.ToString());
}
}
}

watch.Stop();