0% found this document useful (0 votes)
3 views14 pages

Python Lecture 2-Fundamental-Algorithms

The document outlines fundamental algorithms for various mathematical problems including evaluating the sine function using series expansion, finding square roots, generating Fibonacci sequences, reversing digits of a number, and calculating the greatest common divisor (gcd). It provides pseudocode for each algorithm and discusses methods for finding the smallest exact divisor of an integer. Each algorithm is presented with a problem statement, input requirements, and step-by-step logic.

Uploaded by

Abhishek Goutam
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views14 pages

Python Lecture 2-Fundamental-Algorithms

The document outlines fundamental algorithms for various mathematical problems including evaluating the sine function using series expansion, finding square roots, generating Fibonacci sequences, reversing digits of a number, and calculating the greatest common divisor (gcd). It provides pseudocode for each algorithm and discusses methods for finding the smallest exact divisor of an integer. Each algorithm is presented with a problem statement, input requirements, and step-by-step logic.

Uploaded by

Abhishek Goutam
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 14

Some Fundamental Algorithms

(contd)
Sine function as series

• Problem
Evaluate sin(x) as a series expansion i.e, upto n
terms

– Instead of computing upto n terms, terminate


based on an error
Sine function as series

term = x
sum = x
i=1
y = x*x
error = 0.00001
while (abs(term) > error) do
i=i+2
term = -term*y/(i*(i-1)
sum = sum + term
end-while
output sum
Square Root (x)
• Problem
Find square root of x.

Source:https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-0001-introduction-to-computer-science-and-
programming-in-python-fall-2016/lecture-slides-code/
Fibonacci series

• Problem
Generate and print first n terms of Fibonacci
sequence, which looks like
0, 1, 1, 2, 3, 5, 8, 13 ….

An improved version:
0, 1, 1, 2, 3, 5, 8, 13 ….
a=0 a=a+b
b=1 b=a+b
Fibonacci series

input n
a=0
An improved version!
b=1
i=2 # keeps track of number of terms decided
while i<n do
output(a,b)
a=a+b
b=a+b
i=i+2
end-while
if i==n then output (a,b) else output a
Reverse Digits of (x)

• Problem
Given a positive integer, reverse the order of its digit.

Input 17653
Outpur 35671

17653 = 1x104 + 7x103 + 6x102 + 5x101 + 3

Let div performs integer division and mod provides


remainder
Reverse Digits of (x)

• Problem
Given a positive integer, reverse the order of its digit.

17653 mod 10 = 3 17653 div 10 = 1765


(first digit for the reversed number) (for next iteration)
1765 mod 10 = 5 1765 div 10 = 176
176 mod 10 = 6 176 div 10 = 17
17 mod 10 = 7 17 div 10 = 1
1 mod 10 = 1 1 div 10 = 0
Reverse Digits of (x)
input n
reverse=0
while (n > 0) do
reverse = reverse * 10 + n mod 10
n = n div 10
end-while
output reverse
Greatest Common Divisor (gcd)

• Problem
Given two positive non-zero integers n and m find
their greatest common divisor

m = 18, n = 30
gcd = 6
Greatest Common Divisor (gcd)

• Problem
Given two positive non-zero integers n and m find
their greatest common divisor
input n , m
variable r
while r > 0
r = n mod m
n=m
m=r
end while
output n
Smallest Exact Divisor

• Problem
Given an integer n find its smallest exact divisor
other than 1
Option 1
start from 2, 3, 4, 5, … till n
check if n is exactly divided
input n
for i = 2 to n
if n mod i == 0
break
end for
output i
Smallest Exact Divisor

• Problem
Given an integer n find its smallest exact divisor
other than 1
Option 2
When a number s exactly divides n, there exists another
number b that also exactly divides n
36
s b sxb=n
2 18
3 12
4 9
6 6 b=s so here sxs=n
Smallest Exact Divisor
Option 2
If n is even the smallest divisor is 2!
Input n
if n mod 2 == 0
s=2
else
d=3
r = sqrt(n)
while ((n mod d != 0) and (d<r))
d = d+2
end while
if n mod d == 0
s=d
else
s=1

You might also like