几个pascal的题目。。急等!!

1. 计算 1的一次方+2的二次方+3的三次方+..+n的n次方 的值(1<=N<=15)。
样例输入:3
样例输出:32
2. 任意输入一个正整数(<maxlongint),计算它各位数字上的和。
样例输入:35829083
样例输出:38
(提示:可以用while循环完成此题)
3. 求一个正整数N的不同质因子的个数。如180的质因子共有2、2、3、3、5,不同质因子只有2、3、5共3个。
样例输入:325349640
样例输出:6
4. 将一个正整数N进行质因子分解,相同的质因子用幂次方表示。如输入N=1000,则输出格式为1000=2^3 * 5^3。按照因子递增的顺序输出,不得有多余的空格和字符。
样例输入:325349640
样例输出:2^3 * 3^2 * 5 * 7 * 11^3 * 97
5. 对于二元一次方程aX+bY=c,输入三个正整数分别作为a、b、c的值,求出所有满足方程的正整数解并统计解法总数。
数据输入:仅一行,分别为a、b、c的值。
数据输出:若干行,每行为一组解,共两个数,分别是X和Y的值。要求按X解的递增顺序输出。
样例输入:2 5 26
样例输出:3 4 8 2
6. 已知S=1+1/2+1/3+……+1/n。显然对于任意一个整数K,当n足够大的时候,S大于K。现在给出一个整数K(1<=k<=15),要求计算出一个最小的n,使得S>K。
样例输入:14
样例输出:675214
(此题为NOIP2002年第八届普及组复赛试题第一题)
7. 从键盘输入一个正整数X(1<=X<=32767),将X自身相乘M次之后的最后三位数字之和,等于将X自身相乘N次之后的最后三位数字之和(1<=N<M)。编一程序,求出使得M+N最小的M与N的值。若在M+N相同的条件下有多组解,那么输出M较小的那组解。
数据输入:仅一个数,为X的值。
数据输出:两个数,分别为M和N的值。
样例输入:1988
样例输出:8 6
(测试数据:X=1988; 答案:M=8,N=6
测试数据:X=2116; 答案:M=6,N=2)
8. 对于一个五位数abcde将其分为abc、bcd、cde三个数,如15888可分为158、588、888三个数。对于一给定正整数K,如果分成的这三个数均能整除K,则称这个五位数abcde满足要求。
输入:仅一行,为正整数K(1<=K<=100)。
输出:输出的每一行为一个满足条件的五位数,要求从小到大输出。不得重复输出或遗漏。
样例输入:39
样例输出:
50780
58585
85858

1. 计算 1的一次方+2的二次方+3的三次方+..+n的n次方 的值(1<=N<=15)。
样例输入:3
样例输出:32

var
x:real;
a:integer;
function power(x,y:1..15):real;
var
a:integer;
b:real;
begin
b:=1;
for a:=1 to y do
b:=b*x;
power:=b;
end;
begin
x:=0;
for a:=1 to n do
x:=x+power(a,a);
write(x:0:0);
end.

2. 任意输入一个正整数(<maxlongint),计算它各位数字上的和。
样例输入:35829083
样例输出:38
(提示:可以用while循环完成此题)

var
s:string;
x:longint;
a,b,c,d:integer;
begin
readln(x);
str(x,s);
d:=0;
for a:=1 to length(s) do
begin
val(s[a],b,c);
d:=d+b;
end;
writeln(d);
end.
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-05-21
第1题:
var a,b:qword;n,i,j:longint;
begin
readln(n);
for i:=1 to n do
begin
b:=1;
for j:=1 to i do b:=b*i;
a:=a+b;
end;
writeln(a);
end.
第2题:
var s:string;a,i:longint;
begin
readln(s);
for i:=1 to length(s)do
a:=a+ord(s[i])-48;
writeln(a);
end.
第3题
var a:array[1..10000]of longint;
y:array[1..1000000]of longint;
b,c,d,e,f,g,h,i,j,k,m,n:longint;
begin
a[1]:=2;c:=1;b:=2;
while c<>10000 do
begin
inc(b);
e:=1;
for i:=2 to round(sqrt(b)) do
if b mod i=0 then begin e:=0;break;end;
if e=1 then begin inc(c);a[c]:=b;end;
end;
readln(n);
for i:=1 to c do
begin
if n=1 then break;
while n mod a[i]=0 do begin y[a[i]]:=1;n:=n div a[i];end;
end;
for i:=1 to 1000000 do
if y[i]=1 then inc(h);
writeln(h);
end.
第4题
var a:array[1..10000]of longint;
y:array[1..1000000]of longint;
x:array[1..1000,1..2]of longint;
b,c,d,e,f,g,h,i,j,k,m,n:longint;
begin
a[1]:=2;c:=1;b:=2;
while c<>10000 do
begin
inc(b);
e:=1;
for i:=2 to round(sqrt(b)) do
if b mod i=0 then begin e:=0;break;end;
if e=1 then begin inc(c);a[c]:=b;end;
end;
readln(n);
for i:=1 to c do
begin
if n=1 then break;
while n mod a[i]=0 do begin inc(y[a[i]]);n:=n div a[i];end;
end;
g:=0;
for i:=1 to 1000000 do
if y[i]<>0 then begin inc(g);x[g,1]:=i;x[g,2]:=y[i];end;
for i:=1 to g-1 do
begin
if x[i,2]=1 then write(x[i,1],'*') else
write(x[i,1],'^',x[i,2],'*');
end;
if x[g,2]=1 then writeln(x[g,1]) else
writeln(x[g,1],'^',x[g,2]);
end.
第5题:
var a,b,c,d,e,f,g,h,i,j,k,m,n:longint;
begin
readln(a,b,c);
for i:=1 to c div a-1 do
begin
d:=a*i;
e:=c-d;
if e mod b=0 then writeln(i,' ',e div b);
end;
end.
第6题:
var a,b,c,d:real;i,j,k:longint;
begin
readln(k);
a:=1;j:=1;
while a<=k do
begin
inc(j);
a:=a+1/j;
end;
writeln(j);
end.
第7题:
var a:array[0..27,1..2]of longint;
b,c,d,e,f,g,h,i,j,k,m,n:longint;
begin
readln(n);n:=n mod 1000;m:=n;
b:=n div 100+n div 10 mod 10+n mod 10;a[b,1]:=1;
for i:=2 to 5000 do
begin
m:=m*n mod 1000;
b:=m div 100+m div 10 mod 10+m mod 10;
if a[b,1]=0 then a[b,1]:=i else
if a[b,2]=0 then a[b,2]:=i else continue;
end;
h:=maxlongint;
for i:=0 to 27 do
begin
if (a[i,1]<>0)and(a[i,2]<>0) then
if a[i,1]+a[i,2]<h then
begin
h:=a[i,1]+a[i,2];e:=a[i,1];f:=a[i,2];
end;
end;
writeln(f,' ',e);
end.
第8题
var a,b,c,d,e,f,g,h,i,j,k,m,n:longint;
begin
readln(n);
for i:=10000 to 99999 do
begin
a:=i div 100;
b:=i div 10 mod 1000;
c:=i mod 1000;
if a mod n+b mod n+c mod n=0 then writeln(i);
end;
end.
这些程序都验证过了,没什么问题
第2个回答  2008-05-20
!!!!!``
我看到了呵呵`
你自己在检查你一你的编的程序是否完全真确把``
如果没检查到在找我`
第3个回答  2008-05-20
READLN(N);
FOR I:=1 TO N DO
B:=A[I]*A[I];
WRITELN(B);
END。

相关了解……

你可能感兴趣的内容

大家正在搜

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网