Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2008-10-06, 12:31   #1
赵紫顺
初级会员
 
注册日期: 2008-10-06
年龄: 36
帖子: 3
声望力: 0
赵紫顺 正向着好的方向发展
默认 求助:求所有三位的绝对素数的程序

这是我们的作业 但是自己编写了几个程序 运行结果都不对
一个自然数是素数,且它的各位数字位置经过任意对换之后仍为素数,则成为绝对素数。例如113是绝对素数。试求所有三位的绝对素数。
(1) 请自己写一个判断一个数是否是素数的函数,函数定义如下:[primeNum]=myisprime(inputdata),其中,primeNum返回的是一个数组,如果输入的数组inputdata中的数为素数,则对应的primeNum中相应位置的元素为1,否则为0. 调用该函数,得到正确的结果。(2)试用matlab的内部函数isprime完成这一任务。
这是我编写的:
for i=100:999
j=2;
x=fix(i./100);
y=fix((i-x.*100)./10);
z=i-100.*x-10.*y;

while j<=sqrt(i)
if rem(i,j)==0
break;
end
j=j+1;
end

i=100.*x+10.*z+y;
j=2;
while j<=sqrt(i)
if rem(i,j)==0
break;
end
j=j+1;
end

i=100.*z+10.*y+x;
j=2;
while j<=sqrt(i)
if rem(i,j)==0
break;
end
j=j+1;
end

i=100.*z+10.*x+y;
j=2;
while j<=sqrt(i)
if rem(i,j)==0
break;
end
j=j+1;
end

i=100.*y+10.*x+z;
j=2;
while j<=sqrt(i)
if rem(i,j)==0
break;
end
j=j+1;
end

i=100.*y+10.*z+y;
j=2;
while j<=sqrt(i)
if rem(i,j)==0
break;
end
j=j+1;
end

fprintf('%d ',i);
end
赵紫顺 当前离线   回复时引用此帖
旧 2008-10-06, 15:13   #2
meteora1005
高级会员
 
注册日期: 2008-05-31
年龄: 38
帖子: 104
声望力: 19
meteora1005 正向着好的方向发展
默认 回复: 求助:求所有三位的绝对素数的程序

老师要你编个函数,没有那么复杂吧,看你写了好多,我给你个我以前编的:
function y=sushu_or_not(n)
%y=sushu_or_not(n)
%判断n是否是素数
%同isprime
%

if n==1
y=0;
elseif n==2
y=1;
else
a=2:fix(n/2);
b=rem(n,a);
if all(b)
y=1;
else
y=0;
end
end
然后你在100:999间找素数就可以了
meteora1005 当前离线   回复时引用此帖
旧 2008-10-06, 16:13   #3
赵紫顺
初级会员
 
注册日期: 2008-10-06
年龄: 36
帖子: 3
声望力: 0
赵紫顺 正向着好的方向发展
默认 回复: 求助:求所有三位的绝对素数的程序

首先还是要感谢对我的帮助 但你写的程序有错误 而且是求素数的 我要求的是"绝对"素数
赵紫顺 当前离线   回复时引用此帖
旧 2008-10-06, 22:22   #4
meteora1005
高级会员
 
注册日期: 2008-05-31
年龄: 38
帖子: 104
声望力: 19
meteora1005 正向着好的方向发展
默认 回复: 求助:求所有三位的绝对素数的程序

绝对素数和素数不一样吗?这我还不知道,你告一下我。
meteora1005 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 12:39


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.