主题:我昏!我急!我急!我昏!大哥,大嫂!帮帮忙!小第感激不尽!!!!
Lovely哆啦
[专家分:1360] 发布于 2007-03-26 11:10:00
选数(存盘名:xuanshu.txt)
[问题描述]:
已知 n 个整数 x1,x2,…,xn,以及一个整数 k(k<n)。
从 n 个整数中任选 k 个整数相加,可分别得到一系列的和。
例如当 n=4,k=3,4 个整数分别为 3,7,12,19 时,可得全部的组合与它们的和为:
3+7+12=22 3+7+19=29 7+12+19=38 3+12+19=34。
现在,要求你计算出和为素数共有多少种。
例如上例,只有一种的和为素数:3+7+19=29)。
[输入]:
键盘输入,格式为:
n , k (1<=n<=20,k<n)
x1,x2,…,xn (1<=xi<=5000000)
[输出]:
屏幕输出,格式为:
一个整数(满足条件的种数)。
[输入输出样例]:
输入:
4 3
3 7 12 19
输出:
1
[em10][em10][em10][color=00FF00][/color]
回复列表 (共3个回复)
沙发
小精灵LS [专家分:580] 发布于 2007-04-04 16:51:00
DECLARE SUB LS (I)
CLS
DIM SHARED N, K, S
INPUT "N,K"; N, K
DIM SHARED X(N), A(N)
FOR I = 1 TO N: INPUT X(I): NEXT I
LS 1
PRINT S
END
SUB LS (I)
FOR J = 1 TO N
A(I) = J: F = -1
FOR P = 1 TO I - 1
IF J <= A(P) THEN F = 0: EXIT FOR
NEXT P
IF F = -1 THEN
IF I < K THEN
LS I + 1
ELSE
SUM = 0
FOR L = 1 TO K: SUM = SUM + X(A(L)): NEXT L
Q = -1
FOR M = 2 TO SQR(SUM)
IF SUM MOD M = 0 THEN Q = 0: EXIT FOR
NEXT M
IF SUM <> 1 AND Q = -1 THEN S = S + 1
END IF
END IF
NEXT J
END SUB
板凳
随便你好 [专家分:530] 发布于 2007-04-04 17:54:00
DECLARE SUB ZMF (I)
CLS
DIM SHARED N, K, S
INPUT N, K
DIM SHARED A(N), X(N)
FOR I = 1 TO N: INPUT X(I): NEXT I
CALL ZMF(1)
PRINT S
END
SUB ZMF (I)
FOR A = 1 TO N
A(I) = A: F = -1
FOR B = 1 TO I - 1
IF A <= A(B) THEN F = 0: EXIT FOR
NEXT B
IF F THEN
IF I < K THEN
CALL ZMF(I + 1)
ELSE
SUM = 0
FOR C = 1 TO K
SUM = SUM + X(A(C))
NEXT C
Q = -1
FOR Y = 2 TO SQR(SUM)
IF SUM MOD Y = 0 THEN Q = 0
NEXT Y
IF Q = -1 AND SUM <> 1 THEN S = S + 1
END IF
END IF
NEXT A
END SUB
3 楼
黑白猪-- [专家分:420] 发布于 2007-04-08 17:09:00
DECLARE SUB ZMF (I)
CLS
DIM SHARED N, K, S
INPUT N, K
DIM SHARED A(N), X(N)
FOR I = 1 TO N: INPUT X(I): NEXT I
CALL ZMF(1)
PRINT S
END
SUB ZMF (I)
FOR A = 1 TO N
A(I) = A: F = -1
FOR B = 1 TO I - 1
IF A <= A(B) THEN F = 0: EXIT FOR
NEXT B
IF F THEN
IF I < K THEN
CALL ZMF(I + 1)
ELSE
SUM = 0
FOR C = 1 TO K
SUM = SUM + X(A(C))
NEXT C
Q = -1
FOR Y = 2 TO SQR(SUM)
IF SUM MOD Y = 0 THEN Q = 0
NEXT Y
IF Q = -1 AND SUM <> 1 THEN S = S + 1
END IF
END IF
NEXT A
END SUB
我来回复