永发信息网

如何求出千以内的质数有哪些?(要步骤)

答案:3  悬赏:0  手机版
解决时间 2021-02-15 04:56
  • 提问者网友:泪痣哥哥
  • 2021-02-15 00:48
如何求出千以内的质数有哪些?(要步骤)
最佳答案
  • 五星知识达人网友:荒野風
  • 2021-02-15 01:59
第一步,划掉1
第二步,划掉2的倍数,保留2
全部回答
  • 1楼网友:山有枢
  • 2021-02-15 04:37
呵..不好解释.突然有人问数组是什么还真的不好回答. 还是结合程序去理解起来容易. 一维数组 1、定义: var a:array [1..10] of integer; 其中:a是这一批数据的名称,称为数组名;array、of是定义数组的保留字;中括号中的数字是数据编号的下限和上限,财时也说明了数据的个数(上限-下限);最后一个是数据的基类型,如integer,char,real,boolean。 2、数组元素的输入: 数组名代表的并不是一个变量,而是一批变量,因而,不能直接整个数组读入,而是要逐个数组元素读入,通常用循环结构来完成这一功能。下面是几个常用输入数组元素的例子: for i:=1 to 10 do read(a[i]); {————从键盘读入数组元素的值;最常用的方法} for i:=1 to 10 do a[i]:=i; {————数组元素a[1]到a[10]的值分别为1到10;数据赋初值} for i:=1 to 10 do a[i]:=0; {————数组元素清0;最常用的数据初始化的方法} for i:=1 to 10 do a[i]:=random(100); {————随机产生10个100以内的数,赋给各数组元素} 3、数组元素的输出: 和数组元素的输入相同,数组元素的输出也不能由一个write语句直接完成。同样要逐个数组元素输出。通常也用循环结构来完成这一功能: for i:=1 to 10 do write(a[i],' ');{————数组元素之间用空格分隔} writeln; 4、数组的应用: 例1:从键盘输入10个数,将这10个数逆序输入,并求这10个数的和,输出这个和。 program p1; var a:array [1..10] of integer; i,s:integer; begin for i:=1 to 10 do read(a[i]); for i:=10 downto 1 do write(a[i],' '); writeln; s:=0; for i:=1 to 10 do s:=s+a[i]; writeln('s=',s); end. 例2:用筛法求100以内的素数(质数)。 分析:素数是除了1和它本身以外没有其它约数的数。用筛法求素数的方法是:用质数筛去合数:从第一个素数2开始,把它的倍数去掉;这样2以后的第一个非0数就一定也是素数,把它的倍数也删了……重复这个删数过程,直到在所找到的素数后再也找不到一个非0数。把所有非0数输出。 program p2; var a:array [1..100] of integer; i,j,k:integer; begin for i:=1 to 100 do a[i]:=i; a[1]:=0;i:=2; while i<=100 do begin k:=i; while k<=100 do begin k:=k+i; a[k]:=0; end; {————上面将所有a[i]的倍数清0} i:=i+1; while a[i]=0 do i:=i+1; {————查找接下来的第一个非0数} end; for i:=1 to 100 do if a[i]<>0 then write(a[i],' '); end.
  • 2楼网友:十鸦
  • 2021-02-15 03:35
Sub 求1000以内的质数与合数() Dim Arr(2 To 1000) As Integer, arr2(1 To 500) Dim i As Integer, j As Integer, K As Integer, l As Integer For i = 2 To 1000 '从2到1000之间循环,1不是质数 If Arr(i) Then '如果arr数据的第i个元素大于0 For j = i * 2 To 1000 Step i '从2的i倍到1000之间循环,步长值为i Arr(j) = j '将arr第j个元素赋值为j Next K = K + 1 '累加变量,该变量表示质数的个数 arr2(K) = i '将质数写入数组 End If Next [a1].Resize(K, 1) = WorksheetFunction.Transpose(arr2) '将质数导入到单元格 With [B1].Resize(1000 - 1, 1) '1000-1是因为不计算1,剩下的数999个 .Value = WorksheetFunction.Transpose(Arr) '将合数导入到单元格(包括0) .Replace 0, "", xlWhole '将0替换成空 .SpecialCells(xlCellTypeBlanks).Delete '删除所有空单元格 End With
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯