COMPUTER PROBLEMS: DAY 4 (1) Write a code to compute a

advertisement
COMPUTER PROBLEMS:
DAY 4
(1) Write a code to compute ab mod e via repeated squaring. (Or check that the
code below works for various examples and try and understand how it works)
Example:
>>> modpower(2,100,101)
1
Code:
def modpower(b,e,m):
"""modpower(b,e,m) = b^e mod m"""
P = 1
S = b
while e > 0:
r = e%2
e = e/2
if r == 1:
P = P*S % m
S = S*S % m
return P
(2) What is 1431354254365645765686989879879797987 mod 7987987908098? (can you
do it without the code?)
(3) Write a program that computes the Euler phi function of a number n. You
might start by doing this naively (counting all integers from 1 to n − 1 that
are relatively prime to n) and then in a more sophisticated way by using
the prime factorization of n. The formula for computing φ(n) in terms of
prime factorization is available on Wikipedia. Compute φ for n = 1800 and
n = 10403.
(4) Use Fermat’s little theorem to check if 89809099 is prime. How about
75307568412715349903?
How about
19605263919318560687?
How about
493498225289812782346659016472943960812136641010
4686716378205258797050794163803176579697937348881157?
Can you factor the ones that are not prime?
1
Download