回 帖 发 新 帖 刷新版面

主题:[讨论]急!各位,看看我这个错在哪?

x=input('please write a number:');
 if x<0
  y=fix(sqrt(-x+1));
 elseif x>0
  y=fix(sqrt(x+1));
 end
for i=2:y
  if rem(x,i)==0
    disp('It is the right number');
    break;
  elseif rem(x,i)<0
    disp('It is not');
    break;
  elseif rem(x,i)>0
    disp('It is not');
    break;
  end
  i=i+1;
 end
每次输入9,15,33....都出错!

回复列表 (共5个回复)

沙发

什么错?

板凳

9,15等都不是质素,而显示的说是

3 楼

比如,X=9
FOR循环中,I=2时 rem(x,i)==0 不成立; 下一句   rem(x,i)<0 成立,则disp('It is not');break;

再说,你的程序是当X不是质素说'It is the right number'
      而X是质素'It is not'

4 楼

但输入9时,结果是It is not

5 楼

x=input('please write a number:');
 if x<0
  y=fix(sqrt(-x+1));
 elseif x>0
  y=fix(sqrt(x+1));
 end
for i=2:y+1
  if rem(x,i)==0
    disp('It is the right number');
    break;
  end
 end
if i==y+1
    disp('It is not');
    break;
end


please write a number:9
It is the right number

please write a number:15
It is the right number
please write a number:33
It is the right number
please write a number:5
It is not

对特殊点未做处理,X=-3 -2 -1 0 1 2 3时
你自己试试吧!

我来回复

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