回 帖 发 新 帖 刷新版面

主题:哪位大虾能帮我。万分感谢!!!

1)分解合数:将2~~100间的每个数分解为素数的积。
如:2=2   3=3  4=2*2  5=5   6=2*3 --------

用PASCAL怎么做?谢谢[em8]

回复列表 (共3个回复)

沙发

难吗?
可以用枚举法,如果你不需要求出那么多的解,你可以只求出一种就可以了,然后判断素数,程序如下:
var 
  n,i,j,k,l:integer;
function ss(n:integer):boolean;
var i:integer;
begin
  ss:=true;
  if n=1 then begin ss:=false;exit;end;
  for i:=2 to trunc(sqrt(n)) do 
    if n mod i=0 then begin ss:=false;exit;end;
end.
procedure fenj(n:longint);
  var a,b.i:integer;
  begin
    for i:=2 to n-1 do
      if n mod i=0 then 
        begin 
          a:=i;b:=n div i;
          if ss(a) and ss(b) then 
            begin
              writeln(n,'=',a,'*',b);
            end;
        end;
  end; 
begin
  for n:=2 to 100 do fenj(n);
end.
如果我不粗心,这个程序应该没有问题

板凳

补充一下:欢迎修改!

3 楼

谢谢哦

我来回复

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