作业帮 > 综合 > 作业

问一下程序,pascal的.

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/04/28 07:42:43
问一下程序,pascal的.
K尾相等数
难度级别:D; 运行时间限制:1000ms; 运行空间限制:51200KB; 代码长度限制:2000000B
试题描述
从键盘输入一个正整数K,若存在自然数M和N(M>N),使得K^M和K^N均大于或等于1000,且他们的末尾三位数相等,则称M和N是一对“K尾相等数”.请编一程序,输出满足条件的M和N的和的最小值.
输入
输入数据共一行,包含一个正整数K.
输出
输出数据共一行,为M+N的最小值.
输入示例
2
输出示例
120
其他说明
对于100%的数据,1
不需要使用快速幂.
var
\x05i:longint;
\x05t,k:longint;
\x05flag:boolean;
\x05v:array [0..1000] of longint;
begin
\x05read(k);
\x05t := k;
\x05flag := false;
\x05if t >= 1000 then
\x05begin
\x05\x05flag := true;
\x05\x05t := t mod 1000;
\x05end;
\x05k := 1;
\x05fillchar(V,sizeof(v),255);
\x05for i := 0 to 10000 do
\x05begin
\x05\x05if flag and (i 0) then
\x05\x05begin
\x05\x05\x05if v[k] -1 then
\x05\x05\x05begin
\x05\x05\x05\x05writeln(i + v[k]);
\x05\x05\x05\x05break;
\x05\x05\x05end;
\x05\x05\x05v[k] := i;
\x05\x05end;
\x05\x05k := k * t;
\x05\x05if k >= 1000 then
\x05\x05begin
\x05\x05\x05flag := true;
\x05\x05\x05k := k mod 1000;
\x05\x05end;
\x05end;
end.