主题:这有3题!!做出加30分!!
随便你好
[专家分:530] 发布于 2007-04-04 18:12:00
1、最大公约数与最小公倍数问题
[问题描述]
输入二个正整数x0,y0(2≤x0≤100000,2≤y0≤1000000),求出满足下列条件的P、Q的个数。
条件:
1、P、Q是正整数
2、要求P、Q以xO为最大公约数,以yO为最小公倍数。
试求,满足条件的所有可能的两个正整数的个数。
[样例]
输入:x0=3 y0=60
输出:4
说明:(不用输出)此时的 P Q 分别为,
3 60
15 12
12 15
60 3
所以,满足条件的所有可能的两个正整数的个数共4种。
2、求无暇素数
[问题描述] 一个两位数A本身是素数,若将其个位数字与十位数字交换,得到一个新的两位数B,而B也是素数,我们则称A为无暇素数
例如:31是素数,个位数字与十位数字交换后得到13,也是素数,所以31是无暇素数。
问题:给出一个数字字符串(即字串中的字符全部由数字组成),求出其所有组成的无暇素数。
[输入]
一个数字字符串(长度<=20),以“%”结束
[输出]
全部的无暇素数,之间用一个逗号隔开。
[输入样例]
321314%
[输出样例]
13,31
3、回文数列
[问题描述]
对一个正整数K,求出K的所有拆分,并统计输出其中回文数列的个数。
所谓回文数列是指该数列中的所有数字,从左向右或从右向左看都相同。
例如:
K=4时,有如下的拆分:
4=1+1+1+1 (回文数列1)
=1+1+2
=1+2+1 (回文数列2)
=2+1+1
=2+2 (回文数列3)
=1+3
=3+1
[输入] 一个正整数K(1<=K<=26)
[输出] 满足条件的回文数列的个数
[输入样例] 4
[输出样例] 3
回复列表 (共9个回复)
沙发
zgk [专家分:50] 发布于 2007-04-05 12:03:00
是江苏某年的考题,好像有试题答案书
板凳
随便你好 [专家分:530] 发布于 2007-04-05 17:39:00
别说风凉话!!!
3 楼
Matodied [专家分:7560] 发布于 2007-04-17 20:55:00
DECLARE FUNCTION gcd! (a!, b!)
CLS
INPUT x0, y0
FOR p = x0 TO y0
FOR q = x0 TO y0
IF p <> q THEN
IF gcd(p, q) = x0 THEN
IF p * q / x0 = y0 THEN s = s + 1
END IF
END IF
NEXT q, p
PRINT s
END
FUNCTION gcd (a, b)
c = a MOD b
IF c = 0 THEN gcd = b ELSE gcd = gcd(b, c)
END FUNCTION
4 楼
Matodied [专家分:7560] 发布于 2007-04-17 21:05:00
上面的是第一题,这是第二题.
CLS
INPUT n$
l = LEN(n$) - 1
DIM a$(l - 1)
FOR i = 1 TO l - 1
m$ = MID$(n$, i, 2)
m2$ = MID$(m$, 2, 1) + MID$(m$, 1, 1)
a = VAL(m$): GOSUB isp: p1 = f
a = VAL(m2$): GOSUB isp: p2 = f
IF p1 = 1 AND p2 = 1 THEN
FOR b = 1 TO j
IF m$ = a$(b) THEN GOTO 1
NEXT b
j = j + 1: a$(j) = m$
END IF
1 NEXT i
FOR i = 1 TO j - 1
PRINT a$(i); ",";
NEXT i: PRINT a$(j): END
isp:
f = 1
FOR k = 2 TO INT(SQR(a))
IF a MOD k = 0 THEN f = 0: RETURN
NEXT k
RETURN
5 楼
随便你好 [专家分:530] 发布于 2007-04-22 16:58:00
有一点麻烦!!!
6 楼
Matodied [专家分:7560] 发布于 2007-04-24 20:43:00
第3题可是有点难度了,不过我的书上有!背下来不就行了?但分还要加.
DECLARE SUB pdhw ()
CLS
DIM SHARED t, total
INPUT n
DIM SHARED a(0 TO n)
total = 0: t = 1: s = 0
DO
a(t) = a(t) + 1: s = s + a(t)
IF s >= n THEN
IF s = n THEN pdhw
s = s - a(t): t = t - 1: s = s - a(t)
ELSE
t = t + 1: a(t) = 0
END IF
LOOP UNTIL t = 0
PRINT "Total:", total
END
SUB pdhw
FOR i = 1 TO INT(t / 2)
IF a(i) <> a(t + 1 - i) THEN f = 0: EXIT FOR ELSE f = 1
NEXT i
IF f = 1 THEN total = total + 1
END SUB
7 楼
哈利波特2008 [专家分:20] 发布于 2007-05-01 13:42:00
DECLARE FUNCTION gcd! (a!, b!)
CLS
INPUT x0, y0
FOR p = x0 TO y0
FOR q = x0 TO y0
IF p <> q THEN
IF gcd(p, q) = x0 THEN
IF p * q / x0 = y0 THEN s = s + 1
END IF
END IF
NEXT q, p
PRINT s
END
FUNCTION gcd (a, b)
c = a MOD b
IF c = 0 THEN gcd = b ELSE gcd = gcd(b, c)
END FUNCTION
8 楼
lml1996 [专家分:30] 发布于 2007-05-03 12:04:00
for i=10 to 99
a=i mod 10
b=i \10
c=a*10+b
f=0
for j=1 to i
if i mod j=0 then f=f+1
next j
if f=2 then
for q=1 to c
g=0
for r=1 to q
if q mod r=0 then g=g+1
next r,q
if g=2 then ?i,c
end if
next i
end
[em10][em15]
9 楼
小精灵LS [专家分:580] 发布于 2007-05-10 10:33:00
第2题
CLS
INPUT A$: L = LEN(A$)
FOR I = 1 TO L - 2
A = VAL(MID$(A$, I, 2))
FOR J = 2 TO SQR(A)
IF A MOD J = 0 THEN 10
NEXT J: S = S + 1: A(S) = A
10 NEXT I
FOR I = 1 TO S: A = A(I)
X = A MOD 10: Y = A \ 10: B = X * 10 + Y
FOR J = 1 TO L
IF A = B(J) THEN 1
NEXT J: Z = Z + 1: B(Z) = A
1 NEXT I
FOR I = 1 TO Z: PRINT B(I);
IF I <> Z THEN PRINT ",";
NEXT I
END
一定要加分呀!
我来回复