2022.10.12 MATH 3600-002 Pisano

301 days ago by calkin

7^100 
       
 
       
def pisano(m): a=1 # second Fib number b=1 # first Fib number counter = 1 while [b,a] != [0,1]: a,b=a+b,a a=a%m b=b%m counter+=1 return(counter) 
       
pisano(3) 
       
8
8
pisano(10) 
       
60
60
pisano(10^2) 
       
300
300
pisano(10^3) 
       
1500
1500
pisano(10^4) 
       
15000
15000
pisano(10^5) 
       
150000
150000
pisano(10^6) 
       
1500000
1500000
pisano(10^7) 
       
15000000
15000000
pisano(10^8) 
       
t=cputime() print(pisano(10^7)) print(cputime()-t) 
       
15000000
10.902355
15000000
10.902355
prime_pisano_periods=[] N=20000 p=2 while p<N: pip=pisano(p) prime_pisano_periods.append([p,pisano(p)]) p=p.next_prime() list_plot(prime_pisano_periods) 
       
print(prime_pisano_periods) 
       
prime_pisano_periods=[] N=20000 p=2 while p<N: pip=pisano(p) if pip>3*p/2: prime_pisano_periods.append([p,pisano(p)]) p=p.next_prime() list_plot(prime_pisano_periods) 
       
len(prime_pisano_periods) 
       
907
907
print(prime_pisano_periods[:20]) 
       
[[3, 8], [5, 20], [7, 16], [13, 28], [17, 36], [23, 48], [37, 76], [43,
88], [53, 108], [67, 136], [73, 148], [83, 168], [97, 196], [103, 208],
[127, 256], [137, 276], [157, 316], [163, 328], [167, 336], [173, 348]]
[[3, 8], [5, 20], [7, 16], [13, 28], [17, 36], [23, 48], [37, 76], [43, 88], [53, 108], [67, 136], [73, 148], [83, 168], [97, 196], [103, 208], [127, 256], [137, 276], [157, 316], [163, 328], [167, 336], [173, 348]]
prime_pisano_periods=[] N=2000 p=2 while p<N: pip=pisano(p) if pip<3*p/2 and pip>9*p/10: prime_pisano_periods.append([p,pisano(p)]) p=p.next_prime() list_plot(prime_pisano_periods) 
       
Graphics object consisting of 1 graphics primitive
Graphics object consisting of 1 graphics primitive
print(prime_pisano_periods[:20]) 
       
[[11, 10], [19, 18], [31, 30], [41, 40], [59, 58], [61, 60], [71, 70],
[79, 78], [109, 108], [131, 130], [149, 148], [179, 178], [191, 190],
[239, 238], [241, 240], [251, 250], [269, 268], [271, 270], [311, 310],
[359, 358]]
[[11, 10], [19, 18], [31, 30], [41, 40], [59, 58], [61, 60], [71, 70], [79, 78], [109, 108], [131, 130], [149, 148], [179, 178], [191, 190], [239, 238], [241, 240], [251, 250], [269, 268], [271, 270], [311, 310], [359, 358]]
prime_pisano_periods=[] N=2000 p=2 while p<N: pip=pisano(p) if pip<3*p/4 and pip>3*p/5: prime_pisano_periods.append([p,pisano(p)]) p=p.next_prime() show(list_plot(prime_pisano_periods)) 
       
print(prime_pisano_periods[:20]) 
       
[[47, 32], [107, 72], [113, 76], [263, 176], [347, 232], [353, 236],
[563, 376], [677, 452], [743, 496], [977, 652], [1097, 732], [1217,
812], [1223, 816], [1277, 852], [1307, 872], [1523, 1016], [1553, 1036],
[1733, 1156], [1823, 1216], [1877, 1252]]
[[47, 32], [107, 72], [113, 76], [263, 176], [347, 232], [353, 236], [563, 376], [677, 452], [743, 496], [977, 652], [1097, 732], [1217, 812], [1223, 816], [1277, 852], [1307, 872], [1523, 1016], [1553, 1036], [1733, 1156], [1823, 1216], [1877, 1252]]
plot(sin(x),x,0,10) 
       
Graphics object consisting of 1 graphics primitive
Graphics object consisting of 1 graphics primitive
prime_pisano_periods=[] N=2000 p=2 while p<N: pip=pisano(p) if pip<3*p/5 and pip>2*p/5: prime_pisano_periods.append([p,pisano(p)]) p=p.next_prime() show(list_plot(prime_pisano_periods)) 
       
print(prime_pisano_periods[:20]) 
       
[[29, 14], [89, 44], [101, 50], [181, 90], [229, 114], [349, 174], [401,
200], [509, 254], [761, 380], [941, 470], [1021, 510], [1061, 530],
[1109, 554], [1229, 614], [1249, 624], [1361, 680], [1409, 704], [1549,
774], [1621, 810], [1669, 834]]
[[29, 14], [89, 44], [101, 50], [181, 90], [229, 114], [349, 174], [401, 200], [509, 254], [761, 380], [941, 470], [1021, 510], [1061, 530], [1109, 554], [1229, 614], [1249, 624], [1361, 680], [1409, 704], [1549, 774], [1621, 810], [1669, 834]]
prime_pisano_periods_ratio=[] N=20000 p=2 while p<N: pip=pisano(p) if p%5==2 or p%5==3: prime_pisano_periods_ratio.append([p,2*(p+1)/pisano(p)]) else: prime_pisano_periods_ratio.append([p,(p-1)/pisano(p)]) p=p.next_prime() show(list_plot(prime_pisano_periods_ratio)) 
       
print(prime_pisano_periods_ratio[:20]) 
       
[[2, 2], [3, 1], [5, 1/5], [7, 1], [11, 1], [13, 1], [17, 1], [19, 1],
[23, 1], [29, 2], [31, 1], [37, 1], [41, 1], [43, 1], [47, 3], [53, 1],
[59, 1], [61, 1], [67, 1], [71, 1]]
[[2, 2], [3, 1], [5, 1/5], [7, 1], [11, 1], [13, 1], [17, 1], [19, 1], [23, 1], [29, 2], [31, 1], [37, 1], [41, 1], [43, 1], [47, 3], [53, 1], [59, 1], [61, 1], [67, 1], [71, 1]]
def is_5_square(p): for i in srange(1,p): if (i^2 %p) ==5: return(i) return(False) 
       
for i in srange(2,100): if is_prime(i): print(i,is_5_square(i)) 
       
(2, False)
(3, False)
(5, False)
(7, False)
(11, 4)
(13, False)
(17, False)
(19, 9)
(23, False)
(29, 11)
(31, 6)
(37, False)
(41, 13)
(43, False)
(47, False)
(53, False)
(59, 8)
(61, 26)
(67, False)
(71, 17)
(73, False)
(79, 20)
(83, False)
(89, 19)
(97, False)
(2, False)
(3, False)
(5, False)
(7, False)
(11, 4)
(13, False)
(17, False)
(19, 9)
(23, False)
(29, 11)
(31, 6)
(37, False)
(41, 13)
(43, False)
(47, False)
(53, False)
(59, 8)
(61, 26)
(67, False)
(71, 17)
(73, False)
(79, 20)
(83, False)
(89, 19)
(97, False)