主题:救救偶吧,偶信息班的作业。
上絃月
[专家分:0] 发布于 2005-11-12 10:09:00
1002. 回文质数
时间限制:3000 ms
[问题描述]
如果一个数从左边读和右边读都是同一个数,就称为回文数,例如686就是一个回文数。
写一个程序来找出范围[a,b](5 <= a < b <= 100,000,000)间的所有回文质数;
输入:
两个整数,表示a与b。
输出:
所有[a,b]之间的回文素数,一行一个。
SAMPLE INPUT
5 500
SAMPLE OUTPUT
5
7
11
101
131
151
181
191
313
353
373
383
1003. 输出排列成菱形的字母
时间限制:3000 ms
Problem
输入N值,编程输出如下图形。
Input
一个整数N(1<=N<=7)。
Output
排列成菱形的大写字符,首字符为Z,以后依次为Y,X...
Sample Input
3
Sample Output
Z
Y X
W V
U T
S
1004. 进制转换
时间限制:1000 ms
[问题描述]
我们从幼儿时就知道从1数到10,这就是我们熟悉的十进制计数法。但是计算机中却用二进制来表示信息,同时为了书写方便,在计算机科学中又经常使用八进制与十六进制。这些对我们大部分的小学同学来讲已经够难了,如果要将一个十进制实数,转换成R(2≤R≤16)进制数那就更难了。
请您编写一个程序,将一个十进制实数n转换成R进制整数。
输入:
十进制实数n和进制R。
输出:
n的R进制,小数部分最多保留5位。
Sample input
10.625 2
Sample Output
1010.101
Sample input
28 16
Sample Output
1C
1005. 筛法求素数
时间限制:3000 ms
[问题描述]
求2-n(n不大于200)之间所有的素数。
输入:
n
输出:
2至n之间(包含它们)所有素数,每行一个,按从小到大输出。
因为我刚学这个,是个菜鸟。但是老师又让我们做这种东西,题目可能不难,但对我来说非常可怕,希望大家帮帮忙。谢谢。
回复列表 (共10个回复)
沙发
cxxx401 [专家分:140] 发布于 2005-11-12 10:33:00
好是好,就是这些题目你再过两天就会做了.
不是哄你,经验之谈.
板凳
tcdkz [专家分:210] 发布于 2005-11-13 15:23:00
很复杂的
3 楼
无敌傻仔 [专家分:210] 发布于 2005-11-14 17:46:00
第二题比较好打。
4 楼
幽游の白玉 [专家分:140] 发布于 2005-11-14 19:38:00
我第一题的解法~~~捧场点~~加30分 我做第二题~~
5 楼
无敌傻仔 [专家分:210] 发布于 2005-11-15 17:28:00
我也做第二题
6 楼
liao0772 [专家分:0] 发布于 2005-11-15 17:49:00
参考:
program t1003;
var
n,i,j:integer;
begin
readln(n);
for i:=1 to n do
begin
for j:=1 to i*2-1 do
if j=1 then write(chr(i+64):n+1-i)
else write(chr(i+64));
writeln;
end;
readln;
end.
7 楼
梦幻神兵 [专家分:600] 发布于 2005-11-15 17:51:00
program t1003;
var
n,i,j:integer;
begin
readln(n);
for i:=1 to n do
begin
for j:=1 to i*2-1 do
if j=1 then write(chr(i+64):n+1-i)
else write(chr(i+64));
writeln;
end;
readln;
end.
8 楼
幽游の白玉 [专家分:140] 发布于 2005-11-15 18:17:00
第一题的截法啊~~~
program dsa;
type nn=array[1..11]of byte;
var a:nn;
k:integer;
n,m,i,j:longint;
jc:boolean;
procedure gc(n:nn);
var i,j:integer;ja:boolean;
begin
i:=1;j:=k;ja:=true;
while i<j do
begin
if a[i]<>a[j]then ja:=false;
inc(i);dec(j);
end;
if ja then
begin
for i:=k downto 1 do write(a[i]);
writeln;
end;
end;
begin
writeln('input a,b');
readln(n,m);
for i:=n to m do
begin
j:=i;k:=1;
fillchar(a,sizeof(a),0);
while j<>0 do
begin
a[k]:=j mod 10;
inc(k);
j:=j div 10;
end;
jc:=true;
for j:=2 to trunc(sqrt(i)) do
if i mod j =0 then jc:=false;
dec(k);
if jc then gc(a);
end;
writeln(' OVER ');
writeln('press <enter> ');
readln;
end.
9 楼
chty [专家分:230] 发布于 2005-11-16 15:54:00
简单program hwzs;
var n,b,k,i,j,q,d:longint;
a:array[1..10]of integer;
function f(x:longint):integer;
var j:integer;
begin
f:=1;for j:=2 to trunc(sqrt(x)) do if x mod j=0 then f:=0;if x=1 then f:=0;
end;
begin
readln(n,b);
for i:=n to b do
begin
q:=i;j:=0;
while q>0 do
begin
j:=j+1;
a[j]:=q mod 10;
q:=q div 10;
end;
d:=0;
for k:=1 to j div 2 do
if a[k]<>a[j-k+1] then d:=1;
if (f(i)=1)and(d=0) then writeln(i);
end;
end.
10 楼
无敌傻仔 [专家分:210] 发布于 2005-11-16 16:54:00
program 1003;
var
a:array[1..100] of integer;
z,j,m,k:integer;
begin
a[2]:=4;
for j:=3 to 100 do
a[j]:=a[j-1]+4;
z:=26;
readln(m);
writeln(chr(z+64):m*2-1);
z:=z-1;
for j:=2 to m do
begin
write(chr(z+64):(m+1-j)*2-1);
writeln(chr(z-1+64):a[j]);
z:=z-2;
end;
for j:=m-1 downto 2 do
begin
write(chr(z+64):(m+1-j)*2-1);
writeln(chr(z-1+64):a[j]);
z:=z-2;
end;
writeln(chr(z+64):m*2-1);
end.
我来回复