在考生文件夹下有一个工程文件sjt5.vbp。在窗体文件中已经给出了全部控件及部分程序。程序运行时,在文本框Text1中输入一个大于2的偶数,并单击“分解为”按钮,则可以将该偶数分解为两个素数之和,且要求其中一个素数是所能够分解出的最小的素数(一个偶数有时

admin2017-03-27  27

问题 在考生文件夹下有一个工程文件sjt5.vbp。在窗体文件中已经给出了全部控件及部分程序。程序运行时,在文本框Text1中输入一个大于2的偶数,并单击“分解为”按钮,则可以将该偶数分解为两个素数之和,且要求其中一个素数是所能够分解出的最小的素数(一个偶数有时可以分解为多种素数的组合,例如24可以分解为5和19,也可以分解为11和13,要求取含有最小素数的组合,如图3—178所示)。要求编写“分解为”按钮事件过程中“考生编写程序开始”和“考生编写程序结束”之间的代码,以实现上述功能。过程IsPrime用来判断一个数是否为素数,如果是,返回值为True,否则返回值为False。
注意:不得修改原有程序和控件的属性。至少正确运行一次程序,且运行时在文本框中输入23456,单击“分解为”按钮,将结果显示在标签中,否则无成绩。最后把修改后的文件按原文件名存盘。

选项

答案步骤1:打开考生文件夹中的本题工程文件sjt5.vbp,在代码编辑窗口的指定位置编写以下代码。 参考代码: Dim i As Integer Dim n As Inteqer n=Val(Text1.Text) If n Mod2<>0Then MsgBox"请输入偶数!" Exit Sub End If For i=2To n/2 If IsPrime(i)And IsPrime(n-i)Then Label1.Caption=i Label2.Caption=n-i Exit For End If Next 步骤2:按<F5>键运行程序,在文本框中输入23456,单击“分解为”按钮。 步骤3:按要求将文件保存至考生文件夹中。

解析 本题程序设计思路:两个整数之和为n的组合有:1和n-1、2和n.2…i和n-i,在For循环中按前一个加数由小到大的顺序,依次通过调用函数IsPrime来判断每个组合中的两个加数是否均为素数,第一个找到的素数组合中即含有能够分解出的最小素数。由于1不是素数,故循环变量的初值从2开始;由于i和n-i的组合与n-i和i组合在本题中可被视为相同组合,故循环变量的终值设定为n/2即可。
转载请注明原文地址:https://jikaoti.com/ti/tOy0FFFM
0

最新回复(0)