1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124
|
/* kill(all); */
/* done; */
/* PRIMALITY TESTS */
/* 0 and 1 are not primes */
primep(0);
false;
primep(1);
false;
primep(2);
true;
primep(6);
false;
/* this is checked from the list of small primes */
primep(1741);
true;
primep(8989);
false;
/* this is the deterministic primality test */
primep(1738727);
true;
primep(5178997768267);
false;
next_prime(100002100000);
100002100043;
prev_prime(100002100042);
100002099971;
/* Bug reported on mailing list by Walter Faxon on October 25th, 2017: "Bug in Maxima function primes()" */
[primes(10005, 10009), primes(10006, 10009), primes(10007, 10009), primes(10008, 10009), primes(10009, 10009), primes(10010, 10010), primes(9972, 10007), primes(9973, 10007), primes(1, 2), primes(2, 2), primes(2, 3)];
[[10007, 10009], [10007, 10009], [10007, 10009], [10009], [10009], [], [9973, 10007], [9973, 10007], [2], [2], [2, 3]]$
/* FACTORING TESTS */
ifactors(1);
[];
/* trial divisions */
ifactors(226800);
[[2,4],[3,4],[5,2],[7,1]];
/* limiting to factors */
ev( ifactors(226800), factors_only:true );
[2,3,5,7];
/* this is still found by trialdivision */
ifactors(5178997768267);
[[183823,1],[28173829,1]];
/* disable Pollard p-1 to test Pollard rho */
(save_pm1 : pollard_pm1_tests, pollard_pm1_tests : 0);
0;
/* this should be found by Pollard rho */
ifactors(25091429338142886343);
[[3873703993, 1], [6477373951, 1]];
(pollard_pm1_tests : save_pm1, 0);
0;
(save_prt : pollard_rho_tests, pollard_rho_tests : 0);
0;
/* now this should be found by Pollard p-1 */
ifactors(25091429338142886343);
[[3873703993, 1], [6477373951, 1]];
(pollard_rho_tests : save_prt, 0);
0;
/* disable Pollard rho and p-1 to test ECM */
(save_prt : pollard_rho_tests, pollard_rho_tests : 0);
0;
(save_pm1 : pollard_pm1_tests, pollard_pm1_tests : 0);
0;
/* now this should be found by ECM */
ifactors(25091429338142886343);
[[3873703993, 1], [6477373951, 1]];
(pollard_rho_tests : save_prt, 0);
0;
(pollard_pm1_tests : save_pm1, 0);
0;
/* MODULAR POWERS AND INVERSE */
power_mod(2^64,2,2^64-2^34+1);
240518168561;
inv_mod(42,2^64-2^34+1);
18007535864707547137;
/* negative exponents */
power_mod(3,-1,41);
14;
inv_mod(3,41);
14;
power_mod(2^64,-2,2^64-2^34+1);
18446743816011514066;
inv_mod(2^128,2^64-2^34+1);
18446743816011514066;
/* zero divisors */
inv_mod(3,42);
false;
power_mod(3,-1,42);
false;
|