我试图实现here中描述的算法来查找素数的原始根。
它适用于小素数,但是当我尝试大数字时,它不再返回正确的答案。
然后我注意到a^(p-1)/pi
往往是一个很大的数字,它在MATLAB中返回inf
,所以我认为分解(p-1)
会有所帮助,但我没有看到如何。< / p>
我在MATLAB中写了一小段代码,现在是。
clear all
clc
%works with prime =23,31,37,etc.
prime=761; %doesn't work for this value
F=factor(prime-1); % the factors of prime-1
for i = 2: prime-1
a=i;
tag =1;
for j= 1 :prime-1
if (isprime(j))
p_i = j;
if(mod(a^((prime-1)/p_i),prime)== 1)
tag=0;
break
else
tag = tag +1;
end
end
end
if (tag > 1 )
a %it should only print the primitive root
break
end
end
欢迎任何输入。 感谢