Free Pascal中两个简单的编程

来源:百度知道 编辑:UC知道 时间:2024/05/30 21:05:10
1.输入两个数,判断他们是否互质
2.求S=1^1+2^2+3^3+4^4+5^5+……+n^n
(都用FOR语句)

在此我对 haxaxxsc 的程序进行优化
var a,b,i,t:longint;
can:boolean;
begin
readln(a,b);
can:=true;
if a>b then begin t:=a;a:=b;b:=t;end;
for i:=2 to a do
if b mod i=0 then
begin
can:=false;
break;{一旦b mod i=0就跳出,没必要继续扫}
end;
if can then writeln('yes')
else writeln('no');{haxaxxsc的程序少了输出}
end.{不知道这个方法对不对,总觉的有些怪;其实本题可以还用辗转相除法求解,但不是用for,使用while或repeat}
辗转相除法:
var m,n,a,b,r:integer;
begin
readln(m,n);
a:=m;b:=n;
repeat
r:=a mod b;
a:=b;
b:=r;
until r=0;
if a=1 then writeln('huzhi')
else writeln('buhuzhi');
end.

var s,i,n:longint;
begin
readln(n);
s:=0;
for i:=1 to n do s:=s+sqr(i);{使用内置函数,理论上来说更快}
writeln(s);
end.

1:
var a,b,i,t:longint;
can:boolean;
begin
readln(a,b);