文章目录[隐藏]
素数的定义:任何大于1的正整数,如果它不能被1和它本身之外的其它正整数整除,则该数为素数。找出素数(我们把找素数的范围定在2-50000内)。素数的定义:任何大于1的正整数,如果它不能被1和它本身之外的其它正整数整除,则该数为素数。 所谓筛选法,即对于2~N之内的任一整数I,其倍数2×i,3×i,4×i,……,J×I(J×I<=N),都不是素数,可以筛选掉。I从2循环至N,逐个进行筛选,那么剩下的数就是2至N之间的全部素数。比如找出50以内的所有素数,我们可以把50以内的所有数存放到一个一维数组中,把数I存放在S[I]中,对于I从2于50,如果S[i]>1,则可以把S[2*i],s[3*i],……,s[j*i]都筛选掉(清为0),当然J必须满足J×I<=50,最后输出数组中大于1的数(剩下的数)即可。
易语言筛选法求素数
窗口需要一个显示结果列表框,输入编辑框.内容输入筛选素数的范围。
.版本 2 .子程序 _计算图形按钮_被单击 .局部变量 数组变量, 整数型, , "0", 存放素数的数组 .局部变量 数组下标值, 整数型, , , 存放从输入编辑框中输入的数值 .局部变量 循环变量1, 整数型, , , 既用作循环变量,又作为输入范围内的所有数字 .局部变量 循环变量2, 整数型, , , 既用作循环变量,又作为输入范围内的所有数字的倍数 ' 置“显示结果列表框的内容为空” 显示结果列表框.清空 () ' 接收输入的数值 数组下标值 = 到数值 (输入编辑框.内容) ' 判断输入的数值范围 .如果 (数组下标值 > 1 且 数组下标值 ≤ 50000) ' 将输入范围内的所有数字存入数组 .变量循环首 (1, 数组下标值, 1, 循环变量1) 加入成员 (数组变量, 循环变量1) .变量循环尾 () ' 将数组中每一个数的相应倍数的数值从数组中删除掉 ' 从2循环至数组下标值 ÷ 2 + 1,逐个进行筛选 .变量循环首 (2, 数组下标值 ÷ 2 + 1, 1, 循环变量1) ' 筛选 .如果真 (数组变量 [循环变量1] > 1) 循环变量2 = 2 .判断循环首 (循环变量1 × 循环变量2 ≤ 数组下标值) 数组变量 [循环变量1 × 循环变量2] = 0 循环变量2 = 循环变量2 + 1 .判断循环尾 () .如果真结束 .变量循环尾 () ' 显示最后找出来的素数 .变量循环首 (2, 数组下标值, 1, 循环变量1) .如果真 (数组变量 [循环变量1] > 1) 显示结果列表框.加入项目 (到文本 (数组变量 [循环变量1]), ) .如果真结束 .变量循环尾 () ' 显示找到的素数个数 素数个数编辑框.内容 = 到文本 (显示结果列表框.取项目数 ()) ' 显示找到的最大的素数 最大素数编辑框.内容 = 显示结果列表框.取项目文本 (显示结果列表框.取项目数 () - 1) .否则 信息框 (“你输入的值无效!”, 0, ) .如果结束