用pascal程序完成以下题目

来源:百度知道 编辑:UC知道 时间:2024/09/24 05:22:08
1.求两个数相除的商与余数,不允许用div和mod运算
2.输出N以内的完全数
3.输出2-N之间的所有质数
帮帮忙啊 ~~~~~

1.
var
a,b,c:extended;
begin
read(a,b);
while a>=b do
begin
c:=c+1;
a:=a-b;
end;
write(c:0:0,' ',a:0:0);
end.

2.
var
a,b,n,i:longint;
begin
read(n);
for a:=2 to n do
begin
b:=0;
for i:=1 to (a div 2)+1 do
if a mod i=0 then b:=b+i;
if b=a then writeln(a);
end;
end.

3.
var
a,b,n,i:longint;
begin
read(n);
for i:=2 to n do
begin
b:=0;
for a:=2 to trunc(sqrt(i))+1 do
if i mod a=0 then begin b:=1;break;end;
if (b=0)or(i=2) then
writeln(i);
end;
end.
都是用最朴素的方法做的,没优化,大数据不可

1.
var
a,b,c,d:longint;
begin
readln(a,b);
c:=trunc(a/b);
d:=a-c*b;
writeln(c,' ',d);
end.
2.
var
n,i:longint;
begin
readln(n);
for i:=1 to n do
if trunc(sqrt(i))=sqrt(i)
then