## Exercise

- Code

```
number = int(input('Enter the number: '))
index = 2
is_prime = True
while index < number:
if number%index == 0:
is_prime = False
break
index += 1
if is_prime:
print(f"{number} is prime")
else:
print(f"{number} is not prime")
```

- Exercise: Extend the program to print all the prime numbers between 10 and 100

```
number = 10
while number <= 100:
index = 2
is_prime = True
while index < number:
if number%index == 0:
is_prime = False
break
index += 1
if is_prime:
print(number, sep=',', end=',')
number += 1
```

## Skip Ahead with continue

- Sometimes, you dont want to break out of a loop but just want to skip ahead to next iteration for some logical reason. This is where the
`continue`

can help. - The below example shows the python code which skips the iteration if index is divisible of 3

```
index = 1
while index <= 100:
if index%3 == 0:
index += 1
continue
print(index)
index += 1
```

## Check break Use with else

- If the
`while`

loop or`for`

loop ended normally (i.e. no break call), control passes to an optional else block

```
number = int(input('Enter the number: '))
index = 2
while index < number:
if number%index == 0:
print(f"{number} is not prime")
break
index += 1
else: # break not called
print(f"{number} is prime")
```

## Generating Number sequences with range()

- The range() function returns a stream of numbers with in a specified range

```
range(start, stop, step)
```

- The only required value is
`stop`

. - If you have not passed start value default start is 0
- If you have not passed step the default value is 1
- range() functions returns an iterable object

## Iterate with for and in

- Python makes frequent usage of
`iterators`

- Any iterable object can be iterated using while but for is better python way

```
for item in <iterable>:
#block
```

- Samples
- We can use break, continue and else much like what we have done with
`while`

loop

## Lets write programs for the problems solved during foundation classes

- Project Euler Problem 1: Refer Here for problem description

```
sum = 0
for number in range(1,1000):
if number % 3 == 0 or number%5 == 0:
sum += number
print(sum)
```

- Problem Euler Problem 2: Refer Here

```
first = 1
second = 2
sum_of_even = 2
third = 0
while third < 4000000:
third = first + second
if third%2 == 0:
sum_of_even += third
first = second
second = third
print(sum_of_even)
```

- Project Euler problem 3 : Refer Here

```
number = 600851475143
for index in range(number//2,1, -1):
if number% index == 0:
# This is a factor
p_index = 2
while p_index < index//2:
if index%p_index == 0:
break
p_index += 1
else: # break not called
print(f"{index} is largest prime factor")
break
```