组卷题库 > 高中信息技术试卷库
试题详情
给定n个不同的正整数(小于等于100),将它们分组,使得每组中任意两个数互质(它们的公约数为1)。按照以下算法对n个数进行分组:

n个正整数由文本框Text1输入,依次存储到a数组中,b(1 to 25)中存储100内的素数,c数组存储每一组的数字个数及对应数字,d数组存储每一组内所含的质因子,相同质因子只存储一次,最后分组情况显示在列表框List1中。

c数组初始状态:

组别

第一组

第二组

位置

0

1

2

3

4

5

6

7

8

9

10

11

12

13

0

0

0

0

0

0

0

0

0

0

0

0

0

0

d数组初始状态:

组别

第一组

第二组

位置

1

2

3

4

5

6

25

26

27

28

29

30

50

0

0

0

0

0

0

0

0

0

0

0

0

0

若第一个数据为70,确定分组的过程为:先查找第一组内所含的质因子中是否含有70的质因子,未找到,则c数组中表示第一组数据个数的值加1,并将70添加到c数组的第一组内,同时在d数组第一组中依次添加70所含的各个质因子。

c数组变化情况:

组别

第一组

第二组

位置

0

1

2

3

4

5

6

7

8

9

10

11

12

13

1

70

0

0

0

0

0

0

0

0

0

0

0

0

d数组变化情况:

组别

第一组

第二组

位置

1

2

3

4

5

6

25

26

27

28

29

30

50

2

5

7

0

0

0

0

0

0

0

0

0

0

尝试将第2~n个整数分组。在确定某数分组的过程中,若已有的组内不存在该数所含的质因子,则将其分到第一个符合条件的组;否则,将其分到新生成的组中。

分组完毕后数组存储情况如下表。

c数组:

组别

第一组

第二组

位置

0

1

2

3

4

5

6

7

8

9

10

11

12

13

2

70

99

0

0

0

0

3

25

54

11

0

0

0

d数组:

组别

第一组

第二组

位置

1

2

3

4

5

6

25

26

27

28

29

30

50

2

5

7

3

11

0

0

5

2

3

11

0

0

按照上述要求编写一个VB程序,其运行界面如图所示。

知识点
参考答案
采纳过本试题的试卷
教育网站链接