pascal编程求1-10000之间所有质因数的各位数字之和和等于该数各位数字只和的数字

问题描述:

pascal编程求1-10000之间所有质因数的各位数字之和和等于该数各位数字只和的数字
例如 34的质因数是2、17,质因数各位数字之和是2+1+7=10,而34的各位数字之和是3+4=7,不符合条件.最好用函数或者过程完成.
1个回答 分类:综合 2014-12-15

问题解答:

我来补答
var 

  i,n,s:longint;
  c:array[1..10000] of longint;

function sum(p:longint):longint;
var
  i:longint;

begin
  repeat
     i:=i+p mod 10;
    p:=p div 10;
  until p=0;
  exit(i);

end;

function sumprime(p:longint):longint);
var
  i,t:longint;

begin
  t:=0;

  for i:=1 to s do
     while p mod c[i]=0 do
         begin
             p:=p div c[i];
             t:=t+sum(c[i]);

         end;

end;

procedure prime;
var
  i:longint;
  f:boolean;

begin
  q:=0;

  for i:=2 to 10000 do
    begin
      f:=true;

      for j:=2 to trunc(sqrt(i)) do
        if i mod j=0 then
          begin
              f:=false;
              break;
           end;
      if f then
        begin
            inc(q);
            c[q]:=i;

        end;

    end;
  s:=q;

end;

begin
  prime;

  for i:=1 to 10000 do
    if sumprime(i)=sum(i) then
       writeln(i);
end.
没试过不知道对不对.直接打的.自己试试看吧.不对的话改改
?
?
展开全文阅读
剩余:2000
黄色视频网