更多"[说明] 本程序求3~100之间的所有素数(质数)并统计个数;同时将"的相关试题:
[填空题][说明]
本程序求3~100之间的所有素数(质数)并统计个数;同时将这些素数从小到大依次写入顺序文件 E:/dataout.txt;素数的个数显示在窗体Form1上。
[Visual Basic 代码]
Private Sub Command1 Click ( )
Dim count as integer, flag as Boolean
Dim t1 as Integer, t2 as Integer
(1)
Count=0
For t1=3 to 100
(2)
For t2=2 to Int (Sqr (t1))
If (3) Then flag=False
Next t2
(4)
count=count +1
write #1, t1
End if
Next t1
(5)
Close #1
End Sub
[填空题][说明]
本程序求3~100之间的所有素数(质数)并统计个数;同时将这些素数从小到大依次写入顺序文件E: /dataout.txt;素数的个数显示在窗体Form1上。
[Visual Basic 代码]
Private Sub Command1_ Click ( )
Dim count as integer, flag as Boolean
Dim t1 as Integer, t2 as Integer
(1)
Count=0
For t1=3 to 100
Flag=Tree
For t2=2 to Int( Sqr ( t1 ) )
If (2) Then flag=False
Next t2
(3)
count= (4)
write #1, t1
End if
Next t1
(5)
Close #1
End Sub
[简答题]【说明】
本程序将两个从小到大的有序链表合成一个新的从小到大的有序链表。链表的每一项由类 Node描述,而链表由List描述,类List的成员函数有以下几个:
creatList( ): 创建从小到大的有序链表。
multiplyList(List L1, Llst L2): 将链表L1和链表L2合并。
print( ): 打印链表。
【C++代码】
#include <iostream>
using namespace std;
class List;
class Node{
friend class List;
public:
Node(int data){
(1) ;
}
private:
int data;
Node *next;
};
class List{
public:
List( ){list=NULL;}
void multiplyList(List L1, List L2);
void creatList( );
void print( );
private:
Node *list;
};
void List::creatList( )
{
Node *p, *u, *pre;
int dara;
list=NULL;
wbile(1){
cout<<"输入链表的一项: (小于零,结束链表) "<<endl;
cin>>data;
if(dara<0)break;//小于零,结束输入
p=list;
while(p !=NULL && dara>p->data){//查找插入点
pre=p;
p=p->next;
}
u= (2) ;
if(p==list)list=u;
else pre->next=u;
(3) ;
}
}
void List::multipl
[多项选择]【说明】
本程序将两个从小到大的有序链表合成一个新的从小到大的有序链表。链表的每一项由类 Node描述,而链表由List描述,类List的成员函数有以下几个:
creatList( ): 创建从小到大的有序链表。
multiplyList(List L1, Llst L2): 将链表L1和链表L2合并。
print( ): 打印链表。
【C++代码】
#include <iostream>
using namespace std;
class List;
class Node
friend class List;
public:
Node(int data)
(1) ;
private:
int data;
Node *next;
;
class List
public:
List( )list=NULL;
void multiplyList(List L1, List L2);
void creatList( );
void print( );
private:
Node *list;
;
void List::creatList( )
Node *p, *u, *pre;
int dara;
list=NULL;
wbile(1)
cout<<"输入链表的一项: (小于零,结束链表) "<<endl;
cin>>data;
if(dara<0)break;//小于零,结束输入
p=list;
while(p !=NULL && dara>p->data)//查找插入点
pre=p;
p=p->next;
u= (2
[简答题]【说明】本程序将两个从小到大的有序链表合成一个新的从小到大的有序链表。链表的每一项由类Node描述,而链表由类List描述。类List的成员函数有以下几个。
①createList( ):创建从小到大的有序链表。
②multiplyList(List L1,List L2):将链表L1和链表L2合并。
③print( );打印链表。
# include <iostream.h>
class List;
class Node {
friend class List;
public:
Node(int data)
{ (1) ; }
private:
int data;
Node *next;
};
class List {
public:
List( ) {list = NULL;}
void multiplyList(List L1, List L2);
void createList( );
void print( );
private:
Node *list;
};
void List::createList( )
{ Node *p, *u, *pm;
int data;
list = NULL;
while (1)
{ cout<<"输入链表的一项: (小于零,结束链表)"<<end1;
cin >> data;
if(data<0)break; //小于零,结束输入
p = list;
while (p != NULL && data > p->data) //查找插入点
{ pre = p;
p = p->next;
}
u= (2) :
if(p==list)
list = u;
else
pre->next = u;
(3) :
}
void List::multiplyList (List
[填空题]以下程序的功能是在立即窗口中输出100~200之间所有的素数,并统计输出素数的个数,请在程序空白处填入适当的语句,使程序可以完成指定的功能。
Private Sub Command2_Click( )
Dim i%,j%,k%,t% ’t为统计素数的个数
Dim b AS Boolean
For i=100 To 200
b=True
k=2
j=Int(Sqr(i))
Do while k<=j And b
If i Mod k=0 Then
b=______
End If
k=______
Loop
If b=True Then
t=t+1
Debug.Print i
End If
Next i
Debug.Print’t=’;t
End Sub
[填空题]输出50~200之间的所有素数,一行显示5个,并求和。
set talk off
clear
n=50
j=0
S=0
______
i=2
do while i<n
if int(n/i)=n/i
exit
endif
______
enddo
ifi>=n
str(n,5)
S=S+N
j=j+l
______
endif
endif
n=n+1
enddo
"S=",S
return
[填空题]输出50~200之间的所有素数,一行显示5个,并求和。
set talk off
clear
n=50
j=0
S=0
______
i=2
do while i<n
if int(n/i)=n/i
exit
endif
______
enddo
ifi>=n
str(n,5)
S=S+N
j=j+l
______
endif
endif
n=n+1
enddo
"S=",S
return
[填空题]下列程序的功能是求出所有的1-100之间的孪生素数。孪生素数是指两个素数的差为 2,如3和5,11和13等,请填空。
Private Sub Form_Click( )
Dim i As Integer
For i = 3 To 97 Step 2
If 【9】 Then
Print i, i + 2
End If
Next i
End Sub
Public Funtion Prime (ByVal n As Integer) As Boolean
Dim i as Integer
For i = 2 To n - 1
If 【10】 Then
Exit For
End If
Next i
If i = n Then
Prime = True
Else
Prime = False
End If
End Function
[填空题]下列程序的功能是求出所有的1~100之间的孪生素数。孪生素数是指两个素数的差为2,如3和5,11和13等,请填空。
Private Sub Form_Click( )
Dim i As Integer
For i=3 To 97 Step 2
If 【14】 Then
Print i,i+2
End If
Next i
End Sub
Public Function prime(ByVal n As Integer)As Boolean
Dim i As Integer
For i=2 To n-1
If 【15】 Then
Exit For
End If
Next i
If i=n Then
prime=True
Else
prime=False
End If
[填空题]下列程序的功能是:当发生窗体的单击事件时,求出3~1000之间的所有素数的和以及所有能被3和5整除的数的和(素数是指只能被1和它本身整除的数),并在窗体上把这两个和显示出来。
Private Sub Form_Click( )
Dim s1 As Long,s2 As Long
Dim i As Integer
For i=3 To 1000
If prime(i) Then
s1=s1+i
Else If 【11】 Then
s2=s2+i
End If
Next i
Print s1,s2
End Sub
Public Function prime(ByVal n As Integer)As Boolean
Dim j As Integer
For j=2 To n-1
If n Mod j=0 Then
Exit For
End If
Next j
If j=n Then
【12】
Else
prime=False
End If
End Function
[填空题]阅读以下说明和C程序,填充程序中的空缺。
[说明]
埃拉托斯特尼筛法求不超过自然数N的所有素数的做法是:先把N个自然数按次序排列起来,1不是素数,也不是合数,要划去;2是素数,取出2(输出),然后将2的倍数都划去;剩下的数中最小者为3,3是素数,取出3(输出),再把3的倍数都划去;剩下的数中最小者为5,5是素数(输出),再把5的倍数都划去。这样一直做下去,就会把不超过N的全部合数都筛掉,每次从序列中取出的最小数构成的序列就是不超过N的全部质数。
下面的程序实现埃拉托斯特尼筛法求素数,其中,数组元素sieve[i](u>0)的下标i对应自然数i,sieve[i]的值为1/0分别表示i在/不在序列中,也就是将i划去(去掉)时,就将sieve[i]设置为0。
[C程序]
#include <stdio.h>
#define N 10000
int main( )
char sieve[N+1]=(0);
int i=0,k;
/*初始时2~N都放入sieve数组*/
for(i=2;______;i++)
sieve[i]=1;
for(k=2;;)
/*找出剩下的数中最小者并用K表示*/
for(;k<N+1&&sieve[k]==0;______);
if(______)break;
print("%d/t",k); /*输出素数*/
/*从Sieve中去掉k及其倍数*/
for(i=k;i<N+1;i=______)
______;
return 0;
/*end of main*/