易语言筛选法求素数

易语言筛选法求素数

窗口需要一个显示结果列表框,输入编辑框.内容输入筛选素数的范围。

.版本 2
 
.子程序 _计算图形按钮_被单击
.局部变量 数组变量, 整数型, , "0", 存放素数的数组
.局部变量 数组下标值, 整数型, , , 存放从输入编辑框中输入的数值
.局部变量 循环变量1, 整数型, , , 既用作循环变量,又作为输入范围内的所有数字
.局部变量 循环变量2, 整数型, , , 既用作循环变量,又作为输入范围内的所有数字的倍数
 
' 置“显示结果列表框的内容为空”
显示结果列表框.清空 ()
' 接收输入的数值
数组下标值 = 到数值 (输入编辑框.内容)
' 判断输入的数值范围
.如果 (数组下标值 > 1 且 数组下标值 ≤ 50000)
    ' 将输入范围内的所有数字存入数组
    .变量循环首 (1, 数组下标值, 1, 循环变量1)
        加入成员 (数组变量, 循环变量1)
    .变量循环尾 ()
    ' 将数组中每一个数的相应倍数的数值从数组中删除掉
    '2循环至数组下标值 ÷ 21,逐个进行筛选
    .变量循环首 (2, 数组下标值 ÷ 21, 1, 循环变量1)
        ' 筛选
        .如果真 (数组变量 [循环变量1] > 1)
            循环变量2 = 2
            .判断循环首 (循环变量1 × 循环变量2 ≤ 数组下标值)
                数组变量 [循环变量1 × 循环变量2] = 0
                循环变量2 = 循环变量2 + 1
            .判断循环尾 ()
        .如果真结束
 
    .变量循环尾 ()
    ' 显示最后找出来的素数
    .变量循环首 (2, 数组下标值, 1, 循环变量1)
        .如果真 (数组变量 [循环变量1]1)
            显示结果列表框.加入项目 (到文本 (数组变量 [循环变量1]), )
        .如果真结束
 
    .变量循环尾 ()
    ' 显示找到的素数个数
    素数个数编辑框.内容 = 到文本 (显示结果列表框.取项目数 ())
    ' 显示找到的最大的素数
    最大素数编辑框.内容 = 显示结果列表框.取项目文本 (显示结果列表框.取项目数 ()1)
.否则
    信息框 (“你输入的值无效!”, 0, )
.如果结束

发布日期:

所属分类: 易语言 标签: