# Project Euler

### 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.

#### Input Format

First line contains T that denotes the number of test cases. This is followed by T lines, each containing an integer, N.

#### Output Format

For each test case, print an integer that denotes the sum of all the multiples of 3 or 5 below N.

- Sample Input 0

```
2
10
100
```

- Sample Output 0

```
23
2318
```

```
for _ in range(int(input())):
n =int(input())
n -= 1
a= n//3
b= n//5
c= n//15
print((3*a*(a+1) + 5*b*(b+1) - 15*c*(c+1))>>1)
```

### 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.

#### Input Format

First line contains T that denotes the number of test cases. This is followed by T lines, each containing an integer, N.

#### Output Format

For each test case, print an integer that denotes the sum of all the multiples of 3 or 5 below N.

- Sample Input 0

```
2
10
100
```

- Sample Output 0

```
10
44
```

```
for _ in range(int(input())):
N = int(input())
A, B, C = 1, 2, 3
ans = 2
while C < N:
if not C % 2:
ans += C
A, B, C = B, C, B + C
print(ans)
```

### 3. Largest prime factor

What is the largest prime factor of a given number ?

#### Input Format

First line contains **T** , the number of test cases. This is followed by **T** lines each containing an integer **N**.

#### Output Format

For each test case, display the largest prime factor of N .

Sample Input

```
2
10
17
```

Sample Output

```
5
17
```

```
for _ in range(int(input())): ## looping for number of test cases
num = int(input())
fact = 2 ## supposing two as the smallest factorial
is_prime = 2 ## Taking two as the smallest prime
while fact * fact <= num : ## Factor is always <= the sqrt of that number
while num % fact == 0:
is_prime = fact
num //= fact
fact += 1 ## Incrementing the factorial by 1
if num > is_prime: ## If the number is itself prime
is_prime = num
print(is_prime)
```

### 4. Largest palindrome product

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.

#### Sample Input

```
2
101110
800000
```

#### Sample Output

```
101101
793397
```

```
palindromes = [] ## A list to store all palndromes
for num1 in range(100, 1000): ## starting num 1 from 100
for num2 in range(100000//num1, 1000): ## skipping unnecesarry iteration for num2
palindrome = num1 * num2
if str(palindrome) == str(palindrome)[::-1] and palindrome not in palindromes: ## if the number is palindrome and not in list => append
palindromes.append(palindrome)
palindromes.sort() ## sort the list
length = len(palindromes)
for _ in range(int(input())):
test = int(input())
for num in range(length - 1, -1, -1):
if palindromes[num] < test:
print(palindromes[num])
break
```

### 5. Smallest multiple

What is the smallest positive number that is evenly divisible(divisible with no remainder) by all of the numbers from to ?

#### Input Format

First line contains that denotes the number of test cases. This is followed by lines, each containing an integer.

```
1 <= Test Cases <= 10
1 <= Input <= 40
```

#### Output Format

Print the required answer for each test case.

Sample Input

```
2
3
10
```

Sample Output

```
6
2520
```

```
from math import gcd
from functools import reduce
for _ in range(int(input())):
print(reduce(lambda x,y: x*y//gcd(x,y), range(1,int(input())+1)))
```

### 6. Sum square difference

The sum of the squares of the first ten natural numbers is,

`12 + 22 + ... + 102 = 385`

The square of the sum of the first ten natural numbers is,

`(1 + 2 + ... + 10)2 = 552 = 3025`

Hence the difference between the sum of the squares of the first ten natural numbers and the square of the sum is 3025 − 385 = 2640.

Find the difference between the sum of the squares of the first one hundred natural numbers and the square of the sum.

ProjectEuler+ Problem Statement

The Project Euler problem is equivalent to the ProjectEuler+ challenge with T = 1 and N = 100.

#### Sample Input

```
2
3
10
```

#### Sample Output

```
22
2640
```

```
import sys
for _ in range(int(input())):
n = int(input().strip())
print(pow((((n+1)*n)//2),2) - (n*(n+1)*((2*n)+1))//6)
```

### 7. 10001st prime

By listing the first six prime numbers: 2, 3, 5, 7, 11, and 13, we can see that the 6th prime is 13.

What is the 10 001st prime number?

ProjectEuler+ Problem Statement

The Project Euler problem is equivalent to the ProjectEuler+ challenge with T = 1 and N = 10001.

#### Sample Input

```
2
3
6
```

#### Sample Output

```
5
13
```

```
from math import floor
def prime(n,l):
x=l[len(l)-1]
while len(l)<n:
x+=2
y=floor(x**0.5)
count=0
for i in l:
if i>y:
count=0
break
if x%i==0:
count=1
break
if count==0:
l.append(x)
return l
l=[2,3]
for i in range(int(input())):
n=int(input())
if len(l)<n:
l=prime(n,l)
print(l[n-1])
```