回 帖 发 新 帖 刷新版面

主题:请教各位三道题,特急!!!!!

(1)一个正整数(非素数)可以表示成它的因子(1和它本身除外)的乘积。
例如:12有2,3,4,6,所以可表示为:12=2*2*3=4*3=2*6。
给出任一个正整数N,求出它所有的因一个正整数(非素数)可以表示成它的因子(1和它本身除外)的乘积。
对于任意输入的正整数n,请编程求出具有n个不同因子的最小正整数m。

(2)例如:n=4,则m=6,因为6具有4个不同整数因子1,2,3,6;而且是最小的有4个因子的整数。
输入:n(1≤n≤50000)
输出:m
输入输出示例:
input 
4
output 


(3)马从棋盘的左下角起跳,目标是棋盘的右上角。并规定马只许往右跳,不许往左跳。图中所示为其中一种跳行路线,请你设计一个程序,由计算机寻找并打印出马的所有可能的跳行的路线。这是一个典型的深度优先搜索问题,下面给出程序清单,请在①②中填上内容,使程序完整。试试看程序能否正确运行(正确结果有37条路线)
CLS : FOR i = 1 TO 4: READ v(i, 1), v(i, 2): NEXT
DATA 2,1,1,2,2,-1,1,-2,2
p = 1: x = 1: y = 1: x(p) = x: y(p) = y: i = 0: xe = 9: ye = 5
WHILE p > 0
  i = i + 1
  IF i <= 4 THEN
    x = x(p) + v(i, 1): y = y(p) + v(i, 2)
    IF                    ① p<8                      THEN
      p = p + 1: s(p) = I: x(p) = x: y(p) = y: i = 0
      IF        ② x=5 and y=9        THEN GOSUB 10
    END IF
  ELSE
    i = s(p): p = p - 1
  END IF
WEND: END
10 n = n + 1: PRINT n; "  "; : FOR j = 1 TO p - 1: PRINT USING "#"; x(j);
   PRINT ","; : PRINT USING "#"; y(j); : PRINT " --> "; : NEXT
   PRINT USING "#"; x(j); : PRINT ","; : PRINT USING "#"; y(j): RETURN

[img]c:\123.bmp[/img]

回复列表 (共4个回复)

沙发

太难了,结不出

板凳

第1题:
DECLARE SUB pri ()
CLS
DIM SHARED t
INPUT n
DIM SHARED a(n)
t = 1: s = 1: a(t) = 1
DO
  a(t) = a(t) + 1: s = s * a(t)
  IF s >= n THEN
     IF s = n AND t > 1 THEN pri
     s = s / a(t): t = t - 1
     IF t = 0 THEN EXIT DO
     s = s / a(t)
  ELSE
     t = t + 1: a(t) = a(t - 1) - 1
  END IF
LOOP UNTIL t = 0
END

SUB pri
    FOR i = 1 TO t - 1: PRINT a(i); "*"; : NEXT i: PRINT a(t)
END SUB

3 楼

第2题:
CLS
INPUT n
DO
i = i + 1:s = 0
FOR j = 1 TO i \ 2
    IF i MOD j = 0 THEN s = s + 1
NEXT j
IF s + 1 = n THEN PRINT i:END
LOOP 
END

4 楼

①x>=1 AND x<=xe AND y<=ye
②x=xe AND y=ye

我来回复

您尚未登录,请登录后再回复。点此登录或注册