不是VIP会员,不能显示答案

题目解答

题目:
由键盘输入一个奇数 P (P<100,000,000),其个位数字不是 5,求一个整数 S,使 P×S =1111...1 ( 在给定的条件下,解 S 必存在)。要求在屏幕上依次输出以下结果:
(1)S 的全部数字。除最后一行外,每行输出 50 位数字。 (2) 乘积的数字位数。 例 1:输入 p=13,由于 13*8547=111111,则应输出(1)8547,(2)6 例 2:输入 p=147,则输出结果应为(1)755857898715041572184429327286470143613
(2)42,即等式的右端有 42 个 1。
程序:
 program ex402;
var
 p,a,b,c,t,n:longint;
begin
  while (true) do
   begin
writeln ('Input  p, the last digit is  1 or 3 or 7 or 9:');
 readln(p);
if (p mod 2<>0)and(p mod 5<>0) then
break   ; {如果输入的数符合要求,结束循环 }
   end;
   a:=0; n:=0;
   while (a <  p) do
 begin
   a:=a*10+1; inc(n);
 end;
   t:=0;
   repeat
   b:=a div p;
   write(b:1);
   inc(t);
   if (    t mod 50=0  ) then writeln;
   c:=     a-p*b  ;  
   a:=     c*10+1  ;
   inc(n);
   until c<=0;
   dec(n);  
   writeln; writeln('n=',   n  );
end.
考点:
分析:
解答:
评论:
老师: