简单pascal程序
1.输入一个整数,证明任何偶数都可有两个素数之和表示。如:4=2+2
8=3+5
12=5+7
2.输入一个正整数n,把它分解成质因子相乘的形式。如:36=1*2*2*3*3;
19=1*19;
3.输入二进制转十进制
4.输入一个数据x,判断这个数是否为素数
5.输入一个数据(长整型),判断这个数是否为回文数
若有详解,可追加赏分
勿写废话
参考答案:第一题- -;
program dsq;
function check(x:longint;):boolean;
var i:longint;
f:boolean;
begin
f:=false;
for i:=2 to sqrt(x) do if x mod i=0 then
begin
f:=true;
break;
end;
if not f then exit(true);
end;
procedure print(xlongint);
begin
writeln(n,'=',x,'+',n-x);
end;
var n,i:longint;
begin
readln(n);
for i:=2 to n-2 do
begin
if check(i) then
if check(n-i) then
begin
print(i);
break;
end;
end;
end.
第二题- -;
program dsq;
var n,i:longint;
begin
readln(n);
write(n,'=1');
i:=2;
while i<=n do
begin
while n mod i =0 do
begin
write('*',i);
n:=n div i;
end;
inc(i);
end;
end.
第3题- -;
program dsq;
var s:string;
i:longint;
n,k:longint;
begin
readln(s);
k:=1;n:=0;
for i:=length(s) downto 1 do
begin
n:=n+k*(ord(s[i])-48);
k:=k*2;
end;
writeln(n);
end;
第4题- -;
program dsq;
var i,n:longint;
f:boolean;
begin
readln(n);
f:=false;
for i:=2 to sqrt(n) do if n mod i=0 then
begin
f:=true;
break;
end;
if not f then writeln('sushu'); else writeln('Not sushu');
end.
第5题- -;
program dsq;
var l,i:longint;
s:string;
f:boolean;
begin
readln(l);
str(l,s);
f:=false;
for i:=1 to length(s) div 2 do
if s[i]<>s[length(s)-i+1] then
begin
f:=true;
break;
end;
if not f then writeln('huiwenshu') else writeln('Not huiwenshu');
end.
全是笔记本上写的,可能有点小错误,但是基本不会错-。-;
有任何关于pascal的问题都可以来问我,没有我不会的-。-;