作业帮 > 综合 > 作业

pascal 完全数 必做题:1、  求正整数A和B之间的完全数(A<B).完全数是指它的小于该数本身的

来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/09/24 07:19:12
pascal 完全数
必做题:
1、  求正整数A和B之间的完全数(A<B).完全数是指它的小于该数本身的因子之和等于它本身,如6=1+2+3,6即是一个完全数.
样例:
输入:4  10
输出:1
6=1+2+3
说明:输入共一行,为A,B两个整数.
输出为n行,第一行为完全数的个数,第二行到n行输出完全数,每行一个完全数,格式如样例.
        
2、如果一个数从左边读和从右边读都是同一个数,就称为回文数.例如6886就是一个回文数,从给出的数据中统计出既是回文数又是素数的数(<109).
样例:
输入:(tyip.in)
7 12 10 11 121 1331 10301
输出:(tyip.out)
3
 
3、求出哥德巴赫猜想的所有解(将一个奇数拆分成二个素数之和),并按从小到大的顺序写出.
样例:
输入(guess.in):
15
输出(guess.out):
15=2+13
pascal 完全数 必做题:1、  求正整数A和B之间的完全数(A<B).完全数是指它的小于该数本身的
1、
var
i,a,b,top:longint;
c:array[0..100] of string;
procedure doit(x:longint);
var
i,num:longint;
s,h:string;
begin
str(x,s);
s:=s+'=';
num:=0;
for i:=1 to x div 2 do
if x mod i=0 then
begin
str(i,h);
s:=s+h+'+';
num:=num+i;
end;
if num=x then
begin
inc(top);
delete(s,length(s),1);
c[top]:=s;
end;
end;
begin
readln(a,b);
for i:=a to b do
doit(i);
writeln(top);
for i:=1 to top do
writeln(c[i]);
end.
2、
var
x,ans:longint;
function pd(x:longint):boolean;
var
i,j:longint;
s:string;
begin
str(x,s);
i:=1;
j:=length(s);
while ij then exit(true) else exit(false);
end;
function dp(x:longint):boolean;
var
i,j:longint;
begin
dp:=true;
for i:=2 to trunc(sqrt(x)) do
if x mod i=0 then
begin
dp:=false;
break;
end;
end;
begin
while not eoln do
begin
read(x);
if pd(x) and dp(x) then inc(ans);
end;
writeln(ans);
end.