VB循环程序例题100道附答案.docx
《VB循环程序例题100道附答案.docx》由会员分享,可在线阅读,更多相关《VB循环程序例题100道附答案.docx(19页珍藏版)》请在冰豆网上搜索。
![VB循环程序例题100道附答案.docx](https://file1.bdocx.com/fileroot1/2022-10/9/55827548-b083-4c76-a30c-eb19cbebd511/55827548-b083-4c76-a30c-eb19cbebd5111.gif)
VB循环程序例题100道附答案
VB循环程序例题附答案
1.素数
1.[100,999]范围内同时满足以下两个条件的十进制数.⑴其个位数字与十位数字之和除以10所得的余数是百位数字;⑵该数是素数;求有多少个这样的数?
15
n=0
Fori=100To999
a=i\100
b=i\10Mod10
c=iMod10
If(c+b)Mod10=aThen
x=0
Forj=2Toi-1
IfiModj=0Thenx=1:
ExitFor
Nextj
Ifx=0Thenn=n+1
EndIf
Nexti
Printn
2.[300,800]范围内同时满足以下两个条件的十进制数.⑴其个位数字与十位数字之和除以10所得的余数是百位数字;⑵该数是素数;求满足上述条件的最大的三位十进制数。
761
Fori=300To800
a=i\100
b=i\10Mod10
c=iMod10
If(c+b)Mod10=aThen
x=0
Forj=2Toi-1
IfiModj=0Thenx=1:
ExitFor
Nextj
Ifx=0Thens=i
EndIf
Nexti
Prints
3.除1和它本身外,不能被其它整数整除的正整数称为素数(注:
1不是素数,2是素数)。
若两素数之差为2,则称两素数为双胞胎数,问[31,601]之间有多少对双胞胎数。
22
n=0
Fori=31To601-2
x=0
Forj=2ToSqr(i)
IfiModj=0Thenx=1:
ExitFor
Nextj
Ifx=0Then
y=0
Forj=2ToSqr(i+2)
If(i+2)Modj=0Theny=1:
ExitFor
Nextj
Ify=0Thenn=n+1
EndIf
Nexti
Printn
4.数学家哥德巴赫曾猜测:
任何大于6的偶数都可以分解成两个素数(素数对)的和。
但有些偶数可以分解成多种素数对的和,如:
10=3+7,10=5+5,即10可以分解成两种不同的素数对。
试求6744可以分解成多少种不同的素数对(注:
A+B与B+A认为是相同素数对)144
n=0
Fori=2To6744/2
x=0
Forj=2ToSqr(i)
IfiModj=0Thenx=1:
ExitFor
Nextj
Ifx=0Then
y=0
Forj=2ToSqr(6744-i)
If(6744-i)Modj=0Theny=1:
ExitFor
Nextj
Ify=0Thenn=n+1
EndIf
Nexti
Printn
5.两个素数之差为2,则称这两个素数为双胞胎数。
求出[200,1000]之间的最大一对双胞胎数的和。
1764
Fori=200To1000-2
x=0
Forj=2ToSqr(i)
IfiModj=0Thenx=1:
ExitFor
Nextj
Ifx=0Then
y=0
Forj=2ToSqr(i+2)
If(i+2)Modj=0Theny=1:
ExitFor
Nextj
Ify=0Thens=i+i+2
EndIf
Nexti
Prints
6.一个素数(设为p)依次从最高位去掉一位,二位,三位,……,若得到的各数仍都是素数(注:
除1和它本身外,不能被其它整数整除的正整数称为素数,1不是素数,2是素数),且数p的各位数字均不为零,则称该数p为逆向超级素数。
例如,617,17,7都是素数,因此617是逆向超级素数,尽管503,03,3都是素数,但它不是逆向超级素数,因为它包含有零。
试求[100,999]之内的所有逆向超级素数的个数。
39
n=0
Fori=100To999
a=i\10Mod10
b=iMod10
Ifa<>0Andb<>0Andb<>1Then
x=0
Forj=2ToSqr(i)
IfiModj=0Thenx=1:
ExitFor
Nextj
Ifx=0Then
y=0
c=iMod100
Forj=2ToSqr(c)
IfcModj=0Theny=1:
ExitFor
Nextj
Ify=0Then
z=0
Forj=2ToSqr(b)
IfbModj=0Thenz=1:
ExitFor
Nextj
Ifz=0Thenn=n+1
EndIf
EndIf
EndIf
Nexti
Printn
7.德国数学家哥德巴赫曾猜测:
任何大于6的偶数都可以分解成两个素数(素数对)的和。
但有些偶数可以分解成多种素数对的和,如:
10=3+7,10=5+5,即10可以分解成两种不同的素数对。
试求1234可以分解成多少种不同的素数对(注:
A+B与B+A认为是相同素数对)25
n=0
Fori=2To1234/2
x=0
Forj=2ToSqr(i)
IfiModj=0Thenx=1:
ExitFor
Nextj
Ifx=0Then
y=0
Forj=2ToSqr(1234-i)
If(1234-i)Modj=0Theny=1:
ExitFor
Nextj
Ify=0Thenn=n+1
EndIf
Nexti
Printn
8.求[100,900]之间相差为12的素数对(注:
要求素数对的两个素数均在该范围内)的个数。
50
n=0
Fori=100To900-12
x=0
Forj=2ToSqr(i)
IfiModj=0Thenx=1:
ExitFor
Nextj
Ifx=0Then
y=0
Forj=2ToSqr(i+12)
If(i+12)Modj=0Theny=1:
ExitFor
Nextj
Ify=0Thenn=n+1
EndIf
Nexti
Printn
9.一个素数(设为p)依次从最高位去掉一位,二位,三位,……,若得到的各数仍都是素数(注:
1不是素数),且数p的各位数字均不为零,则称该数p为逆向超级素数。
例如,617,17,7都是素数,因此617是逆向超级素数,但尽管503,03,3都是素数,但它不是逆向超级素数,因为它包含有零。
试求[100,999]之内的所有逆向超级素数的和。
21645
s=0
Fori=100To999
a=i\10Mod10
b=iMod10
Ifa<>0Andb<>0Andb<>1Then
x=0
Forj=2ToSqr(i)
IfiModj=0Thenx=1:
ExitFor
Nextj
Ifx=0Then
y=0
c=iMod100
Forj=2ToSqr(c)
IfcModj=0Theny=1:
ExitFor
Nextj
Ify=0Then
z=0
Forj=2ToSqr(b)
IfbModj=0Thenz=1:
ExitFor
Nextj
Ifz=0Thens=s+i
EndIf
EndIf
EndIf
Nexti
Prints
10.一个素数(设为p)依次从最高位去掉一位,二位,三位,……,若得到的各数仍都是素数(注:
1不是素数,2是素数),且数p的各位数字均不为零,则称该数p为逆向超级素数。
例如,617,17,7都是素数,因此617是逆向超级素数,但尽管503,03,3都是素数,但它不是逆向超级素数,因为它包含有零。
试求[100,999]之内的所有逆向超级素数从大到小数的第10个素数是多少?
797
n=0
Fori=999To100Step-1
a=i\10Mod10
b=iMod10
Ifa<>0Andb<>0Andb<>1Then
x=0
Forj=2ToSqr(i)
IfiModj=0Thenx=1:
ExitFor
Nextj
Ifx=0Then
y=0
c=iMod100
Forj=2ToSqr(c)
IfcModj=0Theny=1:
ExitFor
Nextj
Ify=0Then
z=0
Forj=2ToSqr(b)
IfbModj=0Thenz=1:
ExitFor
Nextj
Ifz=0Thenn=n+1:
Ifn=10Thens=i
EndIf
EndIf
EndIf
Nexti
Prints
11.一个自然数是素数,且它的数字位置经过任意对换后仍为素数,则称为绝对素数。
如13,试求所有两位绝对素数的和。
429
s=0
Fori=10To99
a=i\10
b=iMod10
x=0
Forj=2ToSqr(i)
IfiModj=0Thenx=1:
ExitFor
Nextj
Ifx=0Then
y=0
c=b*10+a
Forj=2ToSqr(c)
IfcModj=0Theny=1:
ExitFor
Nextj
Ify=0Thens=s+i
EndIf
Nexti
Prints
12.在[200,900]范围内同时满足以下两个条件的十进制数:
⑴其个位数字与十位数字之和除以10所得的余数是百位数字;⑵该数是素数;问有多少个这样的数?
14
n=0
Fori=200To900
a=i\100
b=i\10Mod10
c=iMod10
If(c+b)Mod10=aThen
x=0
Forj=2Toi-1
IfiMod