回 帖 发 新 帖 刷新版面

主题:请教(MATLAB)绝对素数

一个自然数是素数,且它的各位数字位置经过任意对换后仍为素数,则称是绝对素数
  输出3位数的绝对素数
 提示:
    比如127是三位众多素数中的一个,
%    a=perms(num2str(127))产生下面的效果, 
% a =
% 721
% 712
% 271
% 217
% 127
% 172

回复列表 (共3个回复)

沙发

兄弟 我想问哈perms是函数麻??
怎么用啊??
我是初学的

板凳

721不是一个素数,可以整除7
所以127不是一个绝对素数
function absolute_prime(n)
a=perms(num2str(n));
a=str2num(a);
b=zeros(1,length(a));
for i=1:length(a)
    if isprime(a(i)),
        b(i)=1;
    end
end
c=find(b~=1);
if isempty(c),
    for i=1:length(a),a(i),end;
else
    msgbox('No Found!','Warning');
end

3 楼

你还可以用下面的程序来寻找1到10000的绝对素数:
for i=1:10000
    absolute_prime(i);
end

你会看到199 337 113等就是绝对素数

我来回复

您尚未登录,请登录后再回复。点此登录或注册