Private Sub Command1_Click()
Dim N As Long, I As Long, J As Long
If IsNumeric(Text1.Text) Then
N = CLng(Text1.Text)
If N Mod 2 = 0 And N >= 6 Then
For I = 2 To N \ 2
If I = 2 Or Pd(I) Then
J = N - I
If Pd(J) Then
Label1.Caption = "结果: " &N &"=" &I &"+" &J &"符合!"
Exit Sub
End If
End If
Next
Label1.Caption = "结果: 不符合!"
Else
Text1.Text = "请输入大于或等于6的偶数!"
End If
Else
Text1.Text = "请输入数字!"
End If
End Sub
Private Sub Form_Click()
Cls
Print "双击退出"
Text1.Visible = True
Label1.Visible = True
Command1.Visible = True
End Sub
Private Sub Form_DblClick()
End
End Sub
Private Sub Form_Load()
Form1.Caption = "哥德巴赫猜想"
Form1.Width = 5000
Form1.Height = 5000
Form1.Show
Form1.AutoRedraw = True
Text1.Text = "在此输入一个大于等于6的偶数"
Text1.ForeColor = &H808080
Text1.Top = 500
Text1.Left = 200
Text1.Width = 3000
Text1.Height = 300
Text1.Visible = False
Label1.Caption = ""
Label1.Top = 1000
Label1.Left = 200
Label1.Width = 3000
Label1.Height = 300
Label1.Visible = False
Command1.Caption = "验证"
Command1.Top = 2000
Command1.Left = 200
Command1.Width = 800
Command1.Height = 300
Command1.Visible = False
Print "1942年德国数学家哥德巴赫给数学家欧拉的一封信中,"
Print "提出了把一个整数表示成两个素数之和的推测,"
Print "即一个充分大的偶数(大于等于6),"
Print "总可以分解为两个素数之和,"
Print "编写Visual Basic程序来验证这一猜想"
Print "单击开始......"
End Sub
Private Sub Text1_GotFocus()
Text1.Text = ""
Text1.ForeColor = &H0
Command1.Visible = True
End Sub
Function Pd(a As Long) As Boolean
Dim b As Long
For b = 2 To a - 1
DoEvents
If a Mod b = 0 Then
Pd = False
Exit For
Else
Pd = True
End If
Next
End Function
'已经运行过.
#include "stdio.h"
#include "math.h"
int prime(int x)
{
int i
for(i=2i<=sqrt(x)i++)
if(x%i==0)return 0
return 1
}
int main(void)
{
int count, i, j, k, m, n, number
scanf("%d%d", &m, &n)
if(m % 2 != 0) m = m + 1
if(m >= 6){
for(i=mi<=ni+=2)
{for(j=3j<i/2j+=2)
if(prime(j)&&prime(i-j))
{printf("%d=%d+%d\n",i,j,i-j)break}
}
}
}
这是我写的作业题,6到100的。#include<stdio.h>
#include<math.h>
int prime(int m)
int main(void)
{
int m,a,b,c,count=0
for(m=6m<=100m=m+2){
for(a=2a<=m/2a++){
c=0
b=m-a
if(b<0)break
if(prime(a)==1&&prime(b)==1){
printf(" %d=%d+%d ,",m,a,b)
count++
if(count%5==0)printf("\n")
c=1
}
if(c==1)break
}
}
putchar('\n')
return 0
}
int prime(int m)
{
int n
for(n=2n<=sqrt(m)n++)
if(m%n==0)break
if(n>sqrt(m))
return 1
else return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)