用“埃氏筛法”求2~100以内的素数。2~100以内的数,先去掉2的倍数,再去掉3的倍数,再去掉5的倍数,……依此类推,最后剩下的就是素数。 请上传压缩后的源代码文件,代码可直接并正确运行; 请注意代码风格:类名、变量名的命名,以及必要注释等等; 以防上传失败,请同时把代码贴到文本框中。

用“埃氏筛法”求2~100以内的素数。2~100以内的数,先去掉2的倍数,再去掉3的倍数,再去掉5的倍数,……依此类推,最后剩下的就是素数。 请上传压缩后的源代码文件,代码可直接并正确运行; 请注意代码风格:类名、变量名的命名,以及必要注释等等; 以防上传失败,请同时把代码贴到文本框中。


参考答案和解析
Sieve(n,P). 输入:正整数n. 输出:小于等于n的所有素数P. ①if n=1 then P← ,计算结束; ②P←{2}; ③a←2; ④if n=a then计算结束; ⑤b←min{a 2 ,n}; ⑥Q←{x|a<x≤b}; ⑦for P中的每一个x ⑧for Q中的每一个y ⑨ then从Q中删去y; ⑩P←P∪Q; (11)a←b; (12)转④.

相关考题:

请写出100以内所有的6的倍数

阅读下列程序说明和C代码,回答问题1~2。[说明]本程序用古典的Eratosthenes的筛法求从2起到指定范围内的素数。如果要找出2至10中的素数,开始时筛中有2到10的数,然后取走筛中的最小的数2,宜布它是素数,并把该素数的倍数都取走。这样,第一步以后,筛子中还留下奇数3、5、7、9:重复上述步骤,再取走最小数3,宣布它为素数,井取走3的倍数,于是留下5、7。反复重复上述步骤,直至筛中为空时,工作结束,求得2至 10中的全部素数。程序中用数组sieve表示筛子,数组元素sieve[i]的值为1时,表示数i在筛子中,值为-1时表示数i已被取走。[程序]include < stdio, h >define MAX 22500main( ){ unsigned int i , range , factor , k;int sieve[MAX];prinff( "please input the 'range:" );scanf(" %d" ,range); /* range 指出在多大的范围内寻找素数* /for(i=2 ;i=range; i++) (1); /*筛子初始化*/factor = 2 ;while (factor < = range) {if((2)= = 1)l /*筛子中最小数是素数*/pfinff( "% d\t" ,factor);k = factor;while (k < =range) { /* 取走素数的倍数*/(3);k=(4);factor + +;}}[问题1]将程序代码中的(1)~(4)处补充完整。[问题2]在上述代码的执行过程中,若factor为5,从筛子中取走的头两个数是5和(5)。

部门关系模式存在什么问题?请用100字以内的文字阐述原因。为了解决这个问题可将关系模式分解,分解后的关系模式的关系名依次取部门_A、部门_B、……(2)假定月工作业绩关系模式为:月工作业绩(职员代码,年月,工作时间),请给出“查询职员代码、职员名、年月、月工资”的SQL语句。

阅读以下说明及Visual Basic 程序代码,将应填入(n)处的字句写在对应栏内。[说明]本程序求3~100之间的所有素数(质数)并统计个数;同时将这些素数从小到大依次写入顺序文件E: \dataout.txt;素数的个数显示在窗体Form1上。[Visual Basic 代码]Private Sub Command1_ Click ( )Dim count as integer, flag as BooleanDim t1 as Integer, t2 as Integer(1)Count=0For t1=3 to 100Flag=TreeFor t2=2 to Int( Sqr ( t1 ) )If (2) Then flag=FalseNext t2(3)count=(4)write 1, t1End ifNext t1(5)Close 1End Sub

在考生文件夹中有工程文件execise69.vbp及窗体文件execise69.frm。在名为Form1的窗体中有3个水平滚动条(名称分别为HS1,HS2,HS3),4个标签框(名称分别为Lab1、 Lab2、Lab3和Lab4),如下图所示,Lab1~Lab3的Text分别为,“红”、“绿”、“蓝”; Lab4用来显示颜色变化。要求程序运行后,标签框Lab4的颜色随着红、绿、蓝三种颜色滚动条的变化而变化。试在HS1、HS2、HS3中输入相应的代码以实现程序功能。本程序不完整,请补充完整,并能正确运行。要求:去掉程序中的注释符“'”,把程序中的问号“?”改为正确的内容,使其实现上述功能,但不得修改程序的其他部分。最后,按原文件名并在原文件夹中保存修改后的文件。

阅读以下说明及Visual Basic程序代码,将应填入(n)处的字句写在对应栏内。[说明]某单位组织一次职业技术考核比赛,由十名评委对选手的现场表现打分(0到100以内的数值)。本程序接收原始评分后,去掉一个最高分、一个最低分,最后计算并输出选手最后得分。在接收输入第i个评分时,若输入数据的类型、范围不正确,程序将给出相应提示,并等待下一次输入,直至正确接收第i个评分为止。程序的运行界面如下:在开发过程中,文本框名为Text1,界面上有上至下三个按钮分别取名为CmdMark、CmdReresh和CmdExit。[Visual Basic代码]Private Sub CmdMark_Click() ’按钮“输入评分”的单击事件响应代码Dim i As Integer,temp As Variant ’声明变量Dim marks(1 To 10),maxMark,minMark,sumMark,mark As SinglesumMark=0Text1.Text=“编号”Chr(9)“评分” vbCrLfFor i=1 To 10 ’接收十个评分输入Do While 1=1 ’验证并接收第i个评委的评分temp=InputBox(“请输入”i“号评委的评分:”)If (1) IsNumeric(temp)ThenMsg Box“数据类型错误,请重试!”ElseIf CSng(temp)<0 Or CSng(temp)>100 ThenMsgBox“数值范围错误,请重试!”Else:Exit DoEnd IfLoopmarks(i)=CSng(temp)If i=1 Then maxMark=(2):minMark=(2)If marks(i)>maxMark Then maxMark=marks(i)If minMark>marks(i)Then (3)sumMark=sumMark+marks(i)Text1.Text=Text1.Text i Chr(9) marks(i) vbCrLf输出第i个评委的评分Nextmark=( (4))/8 ’计算选手最后得分Text1.Text=Text1.Text "去掉一个最高分:"maxMarkvbCrLf_"去掉一个最低分:"minMarkvbCrLf_"选手最后得分:"markEnd SubPrivate Sub Command2_Click() ’按钮“刷新屏幕”的单击事件响应代码(5).Text=“单击”输入评分“按钮,开始统分……”End SubPrivate Sub Command3_Click() 按钮“退出程序”的单击事件响应代码EndEnd Sub

阅读下列算法说明和代码,将应填入(n)处的语句写在对应栏内。【说明】本程序用古典Eratosthenes;筛选法求从2起到指定范围内的素数。如果要找出2~10中的素数,开始时筛中有2~10的数,然后取走筛中最小的数2,宣布它是素数,并把该素数的倍数都取走。这样,第一步以后,筛子中还留下奇数3、5、7、9;重复上述步骤,再取走最小数3,宣布它为素数,并取走3的倍数,于是留下5、7。反复重复上述步骤,直到筛中为空时,工作结束,求得2~10中的全部素数。【代码】include <stdio.h>define MAX 22500/*程序中用数组sieve表示筛子,数组元素sieve[i]的值为1时,表示数i在筛子中,值为-1时表示数i已被取走*/main(){ unsigned int i, range, factor, k;int sieve[MAX];printf("please input the range:");scanf("%d", range);/* range 指出在多大的范围内寻找素数*/for(i=2; i<=range; i++)(1);factor=2;while (factor<=range){ if((2)) /* 筛中最小数是素数 */{ printf("%d\t", factor);k=factor;while (k<=range) /*移走素数的倍数 */{ (3);k=(4);}}(5);}}

注意:下面出现的“考生文件夹”均为C:\wexam\25160002。(1) 在考生文件夹下有一个工程文件sjt3.vbp,相应的窗体文件为sjt3.frm。其功能是产生20个0~ 1000的随机整数,放入一个数组中,然后输出这20个整数中大于500的所有整数之和。程序运行后,单击命令按钮(名称为Command1,标题为“输出大于500的整数之和”),即可求出这些整数的和,并在窗体上显示出来,如图25-4所示。这个程序不完整,请把它补充完整,并能正确运行。要求:去掉程序中的注释符,把程序中的?改为正确的内容,使其实现上述功能,但不能修改程序中的其他部分。最后把修改后的文件按原文件名存盘。(2) 在考生文件夹下有一个工程文件sjt4.vbp,相应的窗体文件为sjt4.frm,在窗体上有一个命令按钮和一个文本框。程序运行后,单击命令按钮,即可计算出0~100范围内不能被7整除的所有整数的和,并在文本框中显示出来。在窗体的代码窗口中,已给出了部分程序,其中计算不能被7整除的整数的和的操作在通用过程Fun中实现,请编写该过程的代码。要求:请勿改动程序中的任何内容,只在Function Fun()和End Function之间填入你编写的若干语句。最后把修改后的文件按原文件名存盘。

在考生文件夹下有工程文件sj4.vbp及窗体文件sj4.frm,该程序是不完整的。在窗体上建立一个名称为Command1,标题为“计算”的命令按钮,再建立一个名称为Text1的文本框。运行界面如图6-4所示。要求程序运行后,若单击“计算”按钮,将计算200~350 之间所有素数的和,在文本框中显示结果,同时把结果存人文件out.txt中。(在考生文件夹中有标准模块mode.bas,其中的writedata过程可以把结果存入文件,而isprimenum函数可以判断整数x是否为素数,如果是素数,则函数返回True,否则返回False,考生可以把该模块义件添加到自己的工程中。)注意:请在有“?”的地方填入正确内容,然后删除“?”及代码前的所有注释符(即“b’号),但不能修改其他部分。存盘时不得改变文件名和文件夹。

使用VC++6.0打开考生文件夹下的源程序文件3.cpp。请完成以下部分,实现在屏幕上输出为 C3 C2 这个程序需要修改的部分,请按照以下部分实现。 (1)类C0不能被实例化,请定义一个纯虚函数print,在注释1后添加适当的语句。 (2)类C1私有虚继承类C0,请在注释2后添加适当的语句。 (3)类C2公有继承于C0,请在注释3后添加适当的语句。 (4)类c3公有继承于C2与C1,请在注释4后添加适当的语句。 注意:增加代码或者修改代码的位置已经用符号表示出来。请不要修改其他的程序代码。 试题程序: include(iostream.h) classCO { //********1******** }; //********2******** classC1: { public: voidprint { cout"”C1"endl; } }; //********3******** classC2: { public: voidprint { cout"C2"endl; } }; //********4***x**** classC3: { public: voidprint { cout"C3"endl; } }; voidmain { C30bj3; C20bj2; obj3.print; obj2.print; return; }

在考生目录下有一个工程文件sit5.vbp。运行程序后,单击“读数据”按钮,从data5.dat文件中读出一个数据,并显示在标签Labell中;单击“找素数”按钮,则在大于Labell的数据范围内找出最小的素数,并将其显示标签Label2中。在给出的窗体文件中已经有了全部控件,并给出了读写文件和判断素数的程序代码,但程序不完整。要求:去掉程序中的注释符,把程序中的?改为正确的内容,并编写相应程序段,实现程序功能。注意:不能修改程序的其他部分和控件属性。最后把修改后的文件按原文件名存盘。程序调试通过后,各命令按钮的事件过程必须至少各执行一次。

在考生文件夹下有一个工程文件sjt3.vbp,窗体上有一个标题为“计算”的命令按钮,1个标题为“1!+2!+…+10!=”的标签。请画1个名称为Text1,初始内容为空的文本框,如图所示。程序功能:单击“计算”命令按钮,则计算“l!+2!+…+10!”的值,并将结果显示在Textl文本框中。请将“计算”命令按钮的Click事件过程中的注释符去掉,把?改为正确的内容,以实现上述程序功能。注意:考生不得修改窗体文件中已经存在的控件和程序,最后,程序按原文件名存盘。

在考生文件夹下有一个工程文件sjt4.vbp,窗体上有一个名称为Command1,标题为“运行”的命令按钮。请画两个名称分别为Text1和Text2,初始内容都为空的文本框,再画两个名称分别为Label1、Label2,标题分别是“最大数”和“最大数位置”的标签。程序功能:单击“运行”按钮,则产生50个不重复的介于0~100之问(含0和100)的随机数,且以每行10个数的形式显示在窗体上;最后将这些随机数中的最大数和最大数所处的位置显示在Text1和Text2中。如图所示为某一次的运行效果。请将“运行”命令按钮的Click事件过程中的注释符去掉,把?改为正确内容,以实现上述程序功能。注意:考生不得修改窗体文件中已经存在的控件和程序,最后,程序按原文件名存盘。

程序test.c的功能是:计算500~800区间内素数的个数cnt,并按所求素数的值从大到小的顺序,计算其间隔减、加之和,即第1个素数.第2个素数+第3个素数.第4个素数+第5个素数…的值sum。请编写函数count Value实现程序的要求,最后main函数调用函数writeOAT把结果cnt和Sum,输出到文件out.dat中。

在考生文件夹下有一个工程文件sjt5.vbp。其窗体中有一个名称为Text1的文本框数组,下标从0开始。程序运行时,单击“产生随机数”按钮,就会产生10个3位数的随机数,并放入Text1 数组中,如图6(a)所示单击“重排数据”按钮,将把Text1中的奇数移到前面,偶数移到后面,如图6(b)所示。文件中已经给出了所有控件和部分程序。 要求:请去掉程序中的注释符,把程序中的?改为正确的内容,使其能正确运行,不能修改程序的其他部分和控件属性。最后把修改后的文件按原文件名存盘。 提示:在“重排数据”按钮的事件过程中有对其算法的文字描述,请仔细阅读。

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

在考生文件夹中有一个工程文件execise62.vbp(相应的窗体文件名为execise62.frm)。在名为Form1的窗体上有4个文本框,初始内容为空;1个命令按钮,标题为“求Min”。功能是通过调用过程FindMin求数组的最小值,请装入该文件。程序运行后,在4个文本框中各输入一个整数,然后单击命令按钮,即可求出数组的最小值,并在窗体上显示出来,如下图所示。本程序不完整,请补充完整,并能正确运行。要求;去掉程序中的注释符“'”,把程序中的问号“?”改为正确的内容,使其实现上述功能,但不得修改程序的其他部分。最后,按原文件名并在原文件夹中保存修改后的文件。

在考生文件夹下有一个工程文件sj5.vbp,其窗体上有一个文本框,名称为Text1;有三个命令按钮,名称分别为Command1、Command2和Command3,标题分别为“输入”、“计算显示”和“保存”,运行界面如图25-5所示。在给定程序中有一个函数过程isPrimeNum,其功能是判断参数是否为素数,如果是素数,则返回True,否则返回False。请将程序中有“?”的地方替换为相应的代码,使得在运行时,单击“输入”按钮,弹出“输入”对话框,单击“计算显示”按钮,则找出大于输入参数的最小素数,并显示在Text1中;单击“保存”按钮,则把Text1中的计算结果存入考生文件夹下的out5.txt文件中。注意:去掉程序中的注释符“‘”,把程序中的“?”改为正确的内容,使其实现下述功能,但不能修改程序中的其他部分,也不能修改控件的其他属性。最后把修改后的文件按原文件名存盘。考生不得修改isPrimeNum函数过程和控件的属性,必须把计算结果通过“保存”按钮存入out5.txt文件中,否则无成绩。

在考生文件夹下有一个工程文件sjt3.vbp,其功能是: ①单击“读数据”按钮,则把考生文件夹下in3.dat文件中的100个正整数读入数组a中; ②单击“统计”按钮,则找出这100个正整数中的所有完全平方数(一个整数若是另外一个整数的平方,那么它就是完全平方数。例如,36=62,所以36就是一个完全平方数),并将这些完全平方数的最大值与个数分别显示在文本框Text1、Text2中。 在给出的窗体文件中有了全部控件(如图6所示),但程序不完整,请将程序中的注释符去掉,把?号改为正确的内容,实现上述功能。 注意:考生不得修改窗体文件己存在的控件和程序,最后将程序原文件名存盘。(2)在考生文件夹_下有一个工程文件sjt4.vbp,其窗体上有两个标题分别为“添加”和“退出”的命令按钮,一个内容为空的列表框List1。请画一个标签,其名称为Label1,标题为“请输入编号”;再画一个名称为Text1,初始值为空的文本框,如图7所示。程序功能如下: ①系统启动时,自动向列表框添加一个编号信息“a0001”。 ②系统运行时,在文本框Text1中输入一个编号,并单击“添加”按钮时,如果该编号与已存在于列表框中的其他编号不重复,则将其添加到列表框List1已有项目之后;否则,将弹出“不允许重复输入,请重新输入!”对话框,单击该对话框中的“确定”按钮,可以重新输入。 ③单击“退出”按钮.则结束程序运行。 要求:请去掉程序中的注释符,把程序中的?改为正确的内容,使其实现上述功能,但不能修改窗体文件中已经存在的控件和程序。最后把修改后的文件按原文件名存盘。

在考生文件夹下有一个工程文件sj3.vbp,相应的窗体文件为sj3.{rm。其功能是在Text文本框中输入一个数N,单击命令按钮计算从0到N的所有素数的和,并在Text2中显示出来。运行程序如图7-3所示。注意:去掉程序中的注释符“”,把程序中的“?”改为正确的内容,使其实现上述功能,但不能修改程序中的其他部分。最后把修改后的文件按原文件名存盘。

在考生文件夹下有一个工程文件sjt5.vbp,其窗体上画有两个名称分别为Text1、Text2的文本框,其中Text1可多行显示。请画两个名称为Command1、Command2,标题为“产生数组”、“查找”的命令按钮。如图8所示。程序功能如下: ①单击“产生数组”按钮,则用随机函数生成10个0~100之间(不含0和100)互不相同的数值,并将它们保存到一准数组a中,同时也将这10个数值显示在Text1文本框内; ②单击“查找”按钮将弹出输入对话框,接收用户输入的任意一个数,并在一维数组a中查找该数,若查找失败,则在Text2文本框内显示该数“不存在于数组中”;否则显示该数在数组中的位置。 要求:请去掉程序中的注释符,把程序中的?改为正确的内容,使其实现上述功能,但不能修改窗体文件中已经存在的控件和程序。最后把修改后的文件按原文件名存盘。

在考生文件夹中有工程文件execise99.vbp和窗体文件execise99.frm。在名为Fom1的窗体上有一个名为Text1的文本框,有两个命令按钮(名称分别是Cmd1和Cmd2,标题分别是Read和Save)。要求程序运行后,单击Read按钮,将文本文件in99.txt中的所有数字读到数组arr中,并在文本框内显示出来。随后Read按钮变为无效;然后单击Save按钮,求出数组alt中的各元素的立方并赋值回相应的元素,例如,arr(2)=2,则令art(2)=arr(2)*arr(2) *arr(2)=8。把计算后的数组的值全部写入考生文件夹中的文本文件out99.txt中,并在文本框中显示出来,最后Save按钮也变为无效。本程序不完整,请补充完整,并能正确运行。要求;去掉程序中的注释符“'”,把程序中的问号“?”改为正确的内容,使其实现上述功能,但不得修改程序的其他部分。最后,按原文件名并在原文件夹中保存修改后的文件。

程序test.c的功能是:计算100以内满足以下条件的所有整数i的个数cnt以及这些i之和sum。条件:i,i+4,i+10都是素数,同时i+10小于100。请考生编写函数countvalue实现程序要求,最后调用函数wfiteDAT把结果cnt和sum输出到文件out.dat中。(数值l不是素数)

输出100~200之间的素数。帮忙解释下面的伪代码含义。 请详细一点哦!重点是为什么i≤√ ̄n和;√ ̄n。谢谢了

以下与程序设计风格无关的是( )。A.代码的正确性 B.标识符的命名 C.代码中的注释 D.代码的布局格式

在“3的倍数的特征”一课中,教师通常让学生在百数表中圈出所有3的倍数,再引导学生从不同角度观察所圈数的特征,最后得出3的倍数的特征,这样的推理是________。

对代码 setTimtout("show( )",100) 理解正确的是()。A、有语法错误,要去掉双引号B、表示100毫秒后调用一次show方法C、100表示毫秒,在setTimtout后加一个参数,100也可以表示为秒D、setTimtout相当于C#中的Timer

样品检定时,平均样品的量一般不得少于试验所需用的()A、2倍数B、3倍数C、4倍数D、5倍数E、6倍数