主题:哪位大虾能帮我。万分感谢!!!
yanlili
[专家分:0] 发布于 2006-10-31 19:51:00
1)分解合数:将2~~100间的每个数分解为素数的积。
如:2=2 3=3 4=2*2 5=5 6=2*3 --------
用PASCAL怎么做?谢谢[em8]
回复列表 (共3个回复)
沙发
bigchen [专家分:1940] 发布于 2006-10-31 23:35:00
难吗?
可以用枚举法,如果你不需要求出那么多的解,你可以只求出一种就可以了,然后判断素数,程序如下:
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.
如果我不粗心,这个程序应该没有问题
板凳
bigchen [专家分:1940] 发布于 2006-10-31 23:37:00
补充一下:欢迎修改!
3 楼
yanlili [专家分:0] 发布于 2006-11-01 07:45:00
谢谢哦
我来回复