1、 求100以内的所有素数。
分析:
1.素数是只能被1和本身整除的数,故从2开始取值
2.设置了两层循环,一层为遍历被除数,一层为遍历除数
3.设被除数大于除数,只要不被整除则是素数
*100以内素数
DATA:X TYPE I,
Y TYPE I.
X = 2.
WRITE:/ '100以内所有素数有:'.
WHILE X <= 100.
Y = 2.
WHILE Y < X.
IF X MOD Y = 0.
EXIT.
ENDIF.
Y = Y + 1.
ENDWHILE.
IF Y = X.
WRITE:/ X.
ENDIF.
X = X + 1.
ENDWHILE.
- 求使整数数列1,2,3,......,n的和不大于6000的最大正整数n.
分析:
1循环遍历大于0的所有数
2.将以上所得的数累加
3.找出累加结果大于6000的第一个数,此时n-1为累加结果不大于6000的最大整数
DATA: N TYPE I,
SUM TYPE I.
N = 1.
SUM = 0.
WHILE N > 0.
WRITE:/ 'SUM=',SUM,'+',N.
SUM = SUM + N.
IF SUM > 6000.
N = N - 1.
WRITE:/ N,'是最大整数N'.
WRITE:/ SUM,'是1,2,3,......,n的和大于6000的第一个整数'.
EXIT.
ENDIF.
N = N + 1.
ENDWHILE.
3、求(100,1000)之间所有的能被3整除的偶数的和。
分析:
1.设置变量n为(100,1000)内的数且能被2整除
2.循环将满足要求的数累加
3.得出结果
DATA: N TYPE I,
SUM TYPE I.
N = 101.
SUM = 0.
WHILE 100 < N AND N < 1000.
IF N MOD 3 = 0.
IF N MOD 2 = 0.
WRITE:/ '此时偶数为',N.
SUM = SUM + N.
WRITE:/ '此时和为',SUM.
ENDIF.
ENDIF.
N = N + 1.
ENDWHILE.
4、编写一段程序,按照升序显示出小于输入值的所有正偶数
分析:
1.设置两个未知数M,N,N为输入数,M为小于输入数的数
2.循环找出小于输入数的所有偶数
3.输出结果
PARAMETERS:N TYPE I.
DATA:M TYPE I.
M = 0.
WHILE M <= N.
M = M + 2.
IF M < N.
WRITE: M.
ENDIF.
ENDWHILE.
5、显示输入的整数值的所有约数
分析:
1.设N为输入数,M为从1开始小于输入数的数
2.循环找出小于N且能整除N的约数
3.输出结果
PARAMETERS:N TYPE I.
DATA:M TYPE I.
M = 1.
WHILE M < N.
IF N MOD M = 0.
WRITE: M.
ENDIF.
M = M + 1.
ENDWHILE.