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程序,其运行界面如图所示。