powermod

Модульная степень номера

Синтаксис

powermod(a,b,m)

Описание

пример

powermod(a,b,m) возвращает модульную степень a  mod b m. Используйте powermod, чтобы вычислить модульную степень, не вычисляя a b.

Примеры

свернуть все

Вычислите модульную степень a  mod b m при помощи powermod. Функция powermod эффективна, потому что она не вычисляет экспоненциальный a b.

Вычислите mod(3^5,7).

powermod(3,5,7)
ans =
     5

Небольшая теорема Ферма утверждает, что, где p является главным и a не является делимым p, a (p –1) , ультрасовременный p равняется 1.

Протестируйте небольшую теорему Ферма на p = 5, a = 3. Как ожидалось powermod возвращает 1.

p = 5;
a = 3;
powermod(a,p-1,p)
ans =
1

Протестируйте тот же случай на все значения a меньше, чем p. Функциональный powermod действует поэлементный, чтобы возвратить вектор из единиц.

p = 5;
a = 1:p-1;
powermod(a,p-1,p)
ans =
     1     1     1     1

Небольшая теорема Ферма утверждает, что, где p является главным и a не является делимым p, a (p –1) , ультрасовременный p равняется 1. Протестируйте числа от 300 до 400 для простоты чисел при помощи небольшой теоремы Ферма с основным 2. Найдите псевдоначала Ферма путем сравнения результатов с isprime.

Протестируйте числа от 300 до 400 для простоты чисел.

N = 300:400;
remainder = powermod(2,N-1,N);
primesFermat = N(remainder == 1)
primesFermat =
   307   311   313   317   331   337   341   347   349   353...
   359   367   373   379   383   389   397

Найдите псевдоначала Ферма путем сравнения isprime. 341 является псевдоглавный Ферма.

primeNumbers = N(isprime(N));
setdiff(primesFermat,primeNumbers)
ans =
   341

Входные параметры

свернуть все

Введите, заданный как номер, вектор, матрица, массив, или символьное число или массив. a должен быть целым числом.

Введите, заданный как номер, вектор, матрица, массив, или символьное число или массив. b должен быть неотрицательным целым числом.

Введите, заданный как номер, вектор, матрица, массив, или символьное число или массив. m должен быть неотрицательным целым числом.

Смотрите также

| | |

Введенный в R2018a

Для просмотра документации необходимо авторизоваться на сайте