编写一个程序验证哥德巴赫猜想:任何一个不小于6的偶数可以表示为两个素数之和。

编写一个程序验证哥德巴赫猜想:任何一个不小于6的偶数可以表示为两个素数之和。,第1张

放置一个command1,一个text1,不用再做其它设定,程序会自行设定各个参数,代码如下:

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

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/10889832.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-12
下一篇 2023-05-12

发表评论

登录后才能评论

评论列表(0条)

保存