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

admin2010-09-02  27

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

选项

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

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

最新回复(0)