Модульная степень номера
powermod(a,b,m)
Вычислите модульную степень 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
Входной параметрВведите, заданный как номер, вектор, матрица, массив, или символьное число или массив. a
должен быть целым числом.
b
Входной параметрВведите, заданный как номер, вектор, матрица, массив, или символьное число или массив. b
должен быть неотрицательным целым числом.
m
Входной параметрВведите, заданный как номер, вектор, матрица, массив, или символьное число или массив. m
должен быть неотрицательным целым числом.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.