zoukankan      html  css  js  c++  java
  • 【练习】哥德巴赫猜想验证程序

    一个练习的程序,分为两部分。左边列表显示算出的素数,右边显示每个偶数的两个奇素数之和。

    程序很简陋,还请大家多提意见。

    Form1.Designer.cs

      1 namespace Gedebahe
      2 {
      3     partial class Form1
      4     {
      5         /// <summary>
      6         /// 必需的设计器变量。
      7         /// </summary>
      8         private System.ComponentModel.IContainer components = null;
      9 
     10         /// <summary>
     11         /// 清理所有正在使用的资源。
     12         /// </summary>
     13         /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
     14         protected override void Dispose(bool disposing)
     15         {
     16             if (disposing && (components != null))
     17             {
     18                 components.Dispose();
     19             }
     20             base.Dispose(disposing);
     21         }
     22 
     23         #region Windows 窗体设计器生成的代码
     24 
     25         /// <summary>
     26         /// 设计器支持所需的方法 - 不要
     27         /// 使用代码编辑器修改此方法的内容。
     28         /// </summary>
     29         private void InitializeComponent()
     30         {
     31             this.btnStart = new System.Windows.Forms.Button();
     32             this.label1 = new System.Windows.Forms.Label();
     33             this.btnStop = new System.Windows.Forms.Button();
     34             this.lPn = new System.Windows.Forms.ListBox();
     35             this.txtNumber = new System.Windows.Forms.TextBox();
     36             this.btnSuspend = new System.Windows.Forms.Button();
     37             this.label2 = new System.Windows.Forms.Label();
     38             this.txtEndNumber = new System.Windows.Forms.TextBox();
     39             this.leven = new System.Windows.Forms.ListBox();
     40             this.SuspendLayout();
     41             // 
     42             // btnStart
     43             // 
     44             this.btnStart.Location = new System.Drawing.Point(3018);
     45             this.btnStart.Name = "btnStart";
     46             this.btnStart.Size = new System.Drawing.Size(7523);
     47             this.btnStart.TabIndex = 0;
     48             this.btnStart.Text = "Start";
     49             this.btnStart.UseVisualStyleBackColor = true;
     50             this.btnStart.Click += new System.EventHandler(this.button1_Click);
     51             // 
     52             // label1
     53             // 
     54             this.label1.AutoSize = true;
     55             this.label1.Location = new System.Drawing.Point(1013);
     56             this.label1.Name = "label1";
     57             this.label1.Size = new System.Drawing.Size(7712);
     58             this.label1.TabIndex = 1;
     59             this.label1.Text = "Start Number";
     60             // 
     61             // btnStop
     62             // 
     63             this.btnStop.Location = new System.Drawing.Point(4878);
     64             this.btnStop.Name = "btnStop";
     65             this.btnStop.Size = new System.Drawing.Size(7523);
     66             this.btnStop.TabIndex = 4;
     67             this.btnStop.Text = "Stop";
     68             this.btnStop.UseVisualStyleBackColor = true;
     69             this.btnStop.Click += new System.EventHandler(this.btnStop_Click);
     70             // 
     71             // lPn
     72             // 
     73             this.lPn.FormattingEnabled = true;
     74             this.lPn.ItemHeight = 12;
     75             this.lPn.Location = new System.Drawing.Point(1350);
     76             this.lPn.Name = "lPn";
     77             this.lPn.Size = new System.Drawing.Size(114316);
     78             this.lPn.TabIndex = 5;
     79             // 
     80             // txtNumber
     81             // 
     82             this.txtNumber.Location = new System.Drawing.Point(948);
     83             this.txtNumber.Name = "txtNumber";
     84             this.txtNumber.Size = new System.Drawing.Size(5521);
     85             this.txtNumber.TabIndex = 6;
     86             this.txtNumber.Text = "3";
     87             // 
     88             // btnSuspend
     89             // 
     90             this.btnSuspend.Location = new System.Drawing.Point(3918);
     91             this.btnSuspend.Name = "btnSuspend";
     92             this.btnSuspend.Size = new System.Drawing.Size(7523);
     93             this.btnSuspend.TabIndex = 7;
     94             this.btnSuspend.Text = "Suspend";
     95             this.btnSuspend.UseVisualStyleBackColor = true;
     96             this.btnSuspend.Click += new System.EventHandler(this.btnSuspend_Click);
     97             // 
     98             // label2
     99             // 
    100             this.label2.AutoSize = true;
    101             this.label2.Location = new System.Drawing.Point(15513);
    102             this.label2.Name = "label2";
    103             this.label2.Size = new System.Drawing.Size(6512);
    104             this.label2.TabIndex = 8;
    105             this.label2.Text = "End Number";
    106             // 
    107             // txtEndNumber
    108             // 
    109             this.txtEndNumber.Location = new System.Drawing.Point(2268);
    110             this.txtEndNumber.Name = "txtEndNumber";
    111             this.txtEndNumber.Size = new System.Drawing.Size(6821);
    112             this.txtEndNumber.TabIndex = 9;
    113             this.txtEndNumber.Text = "1000000";
    114             // 
    115             // leven
    116             // 
    117             this.leven.FormattingEnabled = true;
    118             this.leven.ItemHeight = 12;
    119             this.leven.Location = new System.Drawing.Point(17950);
    120             this.leven.Name = "leven";
    121             this.leven.Size = new System.Drawing.Size(374316);
    122             this.leven.TabIndex = 10;
    123             // 
    124             // Form1
    125             // 
    126             this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
    127             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
    128             this.ClientSize = new System.Drawing.Size(574377);
    129             this.Controls.Add(this.leven);
    130             this.Controls.Add(this.txtEndNumber);
    131             this.Controls.Add(this.label2);
    132             this.Controls.Add(this.btnSuspend);
    133             this.Controls.Add(this.txtNumber);
    134             this.Controls.Add(this.lPn);
    135             this.Controls.Add(this.btnStop);
    136             this.Controls.Add(this.label1);
    137             this.Controls.Add(this.btnStart);
    138             this.Name = "Form1";
    139             this.Text = "Form1";
    140             this.Load += new System.EventHandler(this.Form1_Load);
    141             this.ResumeLayout(false);
    142             this.PerformLayout();
    143 
    144         }
    145 
    146         #endregion
    147 
    148         private System.Windows.Forms.Button btnStart;
    149         private System.Windows.Forms.Label label1;
    150         private System.Windows.Forms.Button btnStop;
    151         private System.Windows.Forms.ListBox lPn;
    152         private System.Windows.Forms.TextBox txtNumber;
    153         private System.Windows.Forms.Button btnSuspend;
    154         private System.Windows.Forms.Label label2;
    155         private System.Windows.Forms.TextBox txtEndNumber;
    156         private System.Windows.Forms.ListBox leven;
    157     }
    158 }

    Form1.cs

      1 using System;
      2 using System.Collections.Generic;
      3 using System.Windows.Forms;
      4 using System.Threading;
      5 
      6 namespace Gedebahe
      7 {
      8     public partial class Form1 : Form
      9     {
     10         Thread t1;
     11         public Form1()
     12         {
     13             InitializeComponent();
     14             Form1.CheckForIllegalCrossThreadCalls = false;
     15         }
     16 
     17         private void Form1_Load(object sender, EventArgs e)
     18         {
     19 
     20         }
     21 
     22         private void button1_Click(object sender, EventArgs e)
     23         {
     24             lPn.Items.Clear();
     25             lPn.Items.Add(1);
     26             pn = new List<int>();
     27             pn.Clear();
     28             pn.Add(1);
     29             t1 = new Thread(CaculatePn);
     30             t1.Start();
     31         }
     32 
     33 
     34         private void CaculatePn()
     35         {
     36             for (int i = int.Parse(txtNumber.Text); i < int.Parse(txtEndNumber.Text); i++)
     37             {
     38                 if (i%2 == 0)
     39                 {
     40                     foreach (int j in pn)
     41                     {
     42                         if (pn.Contains(i - j))
     43                         {
     44                             leven.Items.Insert(0,i + "=" + j + "+" + (i - j));
     45                             break;
     46                         }
     47 
     48                     }
     49                 }
     50                 else
     51                 {
     52                     if (isPn(i))
     53                     {
     54                         pn.Add(i);
     55                         lPn.Items.Insert(0, i);
     56                     }
     57 
     58                 }
     59             }
     60         }
     61 
     62         private List<int> pn;
     63 
     64         private bool isPn(int _num)
     65         {
     66             bool _isPn = true;
     67             if (_num == 1 || _num == 3||_num==5||_num==7return true;
     68             if (_num == 2 || _num == 4return false;
     69             int _sqrt = (int) Math.Ceiling(Math.Sqrt((double) _num));
     70             foreach (int i in pn)
     71             {
     72                 if(i==1continue;
     73                 if (i < _sqrt)
     74                 {
     75                     if (_num%== 0)
     76                     {
     77                         _isPn = false;
     78                         break;
     79                     }
     80                 }else break;
     81             }
     82             return _isPn;
     83         }
     84 
     85         private void btnStop_Click(object sender, EventArgs e)
     86         {
     87             t1.Abort();
     88         }
     89 
     90         private void btnSuspend_Click(object sender, EventArgs e)
     91         {
     92             if(t1.ThreadState == ThreadState.Running)
     93                 t1.Suspend();
     94             else
     95             {
     96                 t1.Resume();
     97             }
     98         }
     99     }
    100 }

    运行效果图

    作者:thanks       微信:-       QQ:305380844
             
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    WIN8.1优化
    Iframe跨域嵌入页面自动调整高度的办法
    win8优化
    160多条Windows 7 “运行”命令
    用 C# 代码如何实现让你的电脑关机,重启,注销,锁定,休眠,睡眠
    system32下 exe文件作用
    html高度百分比分配
    Django启程篇
    自适应网页前端设计相关
    crontab定时任务及jar包等问题
  • 原文地址:https://www.cnblogs.com/thanks/p/1833135.html
Copyright © 2011-2022 走看看