求:设有一整数X,通过算法算出它是否能被另一个数N(不等于1和它自己)整除,如果能,则求出最大的N是多少?
求该算法,可能很菜!答对给分!
求该算法,可能很菜!答对给分!
解决方案 »
- 请教如何制作带箭头的splitter,实现显示隐藏,如:DreamWeaver的各个面板的伸缩
- 程序用到了mscomm 不知道应该怎么大包,请赐教,谢谢!
- 对于多版本问题
- ★《中国》发表奇文:《腐败的成长过程》
- 请问如何用Delphi或C++Builder实现屏幕画面的截取?
- 如何得到parodox表中某字段的最大值?
- 在三层结构中,我想在客户端体现出主从表的记录,就象两层的一样,主表变化,从表也变化,应该怎么实现??谢谢。
- ???为什么数据加不进出,SQL语句,没错阿
- 怎么避免出现错误提示? 错误:Asynchronous socket error 10060!
- 我在程序员的道路上还该走多久
- 推荐好书
- 如何读写注册表?
begin
if xmodi=0 then
result := i:
break;
end;
例如:a[1..N]{n-->+无穷大}
b[1..N]
a[1] a[2] a[3]...a[N]
/
b[1] b[2] b[3] ...b[N]
分别存放数字进行运算。
var
X2,
Factor: Cardinal;
begin
if X > 4 then
X2 := X div 2
else if X = 4 then
begin
aMaxFactor := 2;
Result := True;
Exit;
end
else
begin
Result := False;
Exit;
end;
for Factor := X2 downto 2 do
if (X mod Factor) = 0 then
begin
aMaxFactor := Factor;
Result := True;
Exit;
end; Result := False;
end;
var
X2, vMaxFactor, Factor, Quotient, Remainder: Cardinal;
begin
if X > 4 then
X2 := X div 2
else if X = 4 then
begin
aMaxFactor := 2;
Result := True;
Exit;
end
else
begin
Result := False;
Exit;
end; vMaxFactor := 0;
Factor := 2; while True do
begin
asm
xor EDX, EDX
mov EAX, X
div EAX, Factor
mov Quotient, EAX
mov Remainder, EDX
end; if Remainder = 0 then
begin
if Factor < Quotient then aMaxFactor := Quotient
else aMaxFactor := Factor;
Result := True;
Exit;
end; if Factor = X2 then Break;
Inc(Factor);
end;
Result := False;
end;
var
X2, Factor, Quotient, Remainder: Cardinal;
begin
if X > 3 then
begin
if X and 1 = 0 then
begin
Result := True;
aMaxFactor := X shr 1;
Exit;
end
else
begin
X2 := X shr 1;
Factor := 3;
repeat
asm
xor edx, edx
mov eax, X
div eax, Factor
mov Quotient, eax
mov Remainder, edx
end; if Remainder = 0 then
begin
aMaxFactor := Quotident;
Result := True;
Exit;
end;
Inc(Factor, 2);
until Factor > X2;
end;
end
else
Result := False;
end;