刚开始代码无法运行,修改后原书代码可以运行了,可是书本的思想还是错的。

虽然接下来的都是讲错误的思想下的“错误”的修改。

原书缺了窗体控件的代码,虽然在VS下不需要手动写窗体的代码,但是刚开始确实也不会怎么弄窗体

记录窗体拖拽的方法:

  首要的一步是新建一个Windows窗体应用程序:文件 --> 新建 --> 项目 --> 选择Windows窗体应用程序;

  此时VS界面左侧应当要有“工具箱”,有的话这里面的控件就可以直接拖了,没有的话需要设置

      在第一排的菜单栏 -->点“重置窗口布局” -->左侧显示“工具箱” -->单击“工具箱” --> 选点击“公共控件” -->可拖拽各控件(Button/Label/ListBox/ListView/TextBox......)

书本窗体复原:

书本代码可运行版:

  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.ComponentModel;
  5. using System.Data;
  6. using System.Drawing;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. using System.Windows.Forms;
  11.  
  12. namespace WindowsFormsApplication3
  13. {
  14. public partial class Form1: Form
  15. {
  16. public Form1()
  17. {
  18. InitializeComponent();
  19. }
  20.  
  21. private void button1_Click(object sender, EventArgs e)
  22. {
  23. BitArray bitSet = new BitArray();
  24. int value = Int32.Parse(txtValue.Text);
  25. BuildSieve(bitSet);
  26. // Console.WriteLine("bitSet.Get(value)" + bitSet.Get(value));
  27. if(bitSet.Get(value))
  28. lblPrime.Text = (value + "is a prime number." + bitSet.Get(value));
  29. else
  30. lblPrime.Text = (value + "is not a prime number." + bitSet.Get(value));
  31. }
  32. private void BuildSieve(BitArray bits)
  33. {
  34. string primes="";//这里要赋值,否则出错
  35. for (int i = ; i <= bits.Count - ; i++)
  36. bits.Set(i, true);
  37. int lastBit = Int32.Parse(Convert.ToString(Math.Sqrt(bits.Count)));//注意:Int32.Parse(string);
  38. for (int i = ; i <= lastBit - ; i++)
  39. {
  40. if (bits.Get(i))
  41. for (int j = * i; j <= bits.Count - ; j++)
  42. bits.Set(j, false);
  43. int counter = ;
  44.  
  45. for(int k=;k<=bits.Count-;k++)
  46. {
  47. if(bits.Get(k))
  48. {
  49. primes +=k.ToString();
  50. counter++;
  51. if((counter%)==)
  52. primes+="\t";
  53. else
  54. primes+="\n";
  55. }
  56. }
  57. txtPrimes.Text = primes;
  58.  
  59. }
  60.  
  61. }
  62.  
  63. private void SeiveofEratosthenes_Load(object sender, EventArgs e)
  64. {
  65.  
  66. }
  67. }
  68. }

但遗憾最后运行的结果与思想是不对的:



BitArray编写埃拉托斯特尼筛法(原书错误,学习更正)的更多相关文章

  1. LeetCode - 204. Count Primes - 埃拉托斯特尼筛法 95.12% - (C++) - Sieve of Eratosthenes

    原题 原题链接 Description: Count the number of prime numbers less than a non-negative number, n. 计算小于非负数n的 ...

  2. 洛谷P3383 【模板】线性筛素数 (埃拉托斯特尼筛法)

    题目描述 如题,给定一个范围N,你需要处理M个某数字是否为质数的询问(每个数字均在范围1-N内) 输入输出格式 输入格式: 第一行包含两个正整数N.M,分别表示查询的范围和查询的个数. 接下来M行每行 ...

  3. 统计所有小于非负整数 n 的质数的数量,埃拉托斯特尼筛法

    素数的定义:质数又称素数.一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数. 1.暴力算法: 令i=2; 当i<n的时候,我们循环找出2-i的质数,即让i%(2~i-1), ...

  4. 周赛Problem 1021: 分蛋糕(埃拉托斯特尼筛法)

    Problem 1021: 分蛋糕 Time Limits:  1000 MS   Memory Limits:  65536 KB 64-bit interger IO format:  %lld  ...

  5. 利用OpenMP实现埃拉托斯特尼(Eratosthenes)素数筛法并行化 分类: 算法与数据结构 2015-05-09 12:24 157人阅读 评论(0) 收藏

    1.算法简介 1.1筛法起源 筛法是一种简单检定素数的算法.据说是古希腊的埃拉托斯特尼(Eratosthenes,约公元前274-194年)发明的,又称埃拉托斯特尼筛法(sieve of Eratos ...

  6. LOJ6053 简单的函数 【Min_25筛】【埃拉托斯特尼筛】

    先定义几个符号: []:若方括号内为一个值,则向下取整,否则为布尔判断 集合P:素数集合. 题目分析: 题目是一个积性函数.做法之一是洲阁筛,也可以采用Min_25筛. 对于一个可以进行Min_25筛 ...

  7. hdu 1431 素数回文(暴力打表,埃托色尼筛法)

    这题开始想时,感觉给的范围5 <= a < b <= 100,000,000太大,开数组肯定爆内存,而且100000000也不敢循环,不超时你打我,反正我是不敢循环. 这题肯定得打表 ...

  8. 学习PHP爬虫--《Webbots、Spiders和Screen Scrapers:技术解析与应用实践(原书第2版)》

    <Webbots.Spiders和Screen Scrapers:技术解析与应用实践(原书第2版)> 译者序 前言 第一部分 基础概念和技术 第1章 本书主要内容3 1.1 发现互联网的真 ...

  9. PHP和MySQL Web开发(原书第4版) 高清PDF+源代码

    PHP和MySQL Web开发(原书第4版) 高清PDF+源代码 [日期:2014-08-06] 来源:Linux社区  作者:Linux [字体:大 中 小]     内容简介 <PHP和My ...

随机推荐

  1. vSphere SDK for Java 示例

    示例代码: package com.vmware.event.connect; import java.net.MalformedURLException; import java.net.URL; ...

  2. Java 线程池Future和FutureTask

    Future表示一个任务的周期,并提供了相应的方法来判断是否已经完成或者取消,以及获取任务的结果和取消任务. Future接口源码: public interface Future<V> ...

  3. iOS开发进阶 - 自定义UICollectionViewLayout实现瀑布流布局

    移动端访问不佳,请访问我的个人博客 最近项目中需要用到瀑布流的效果,但是用UICollectionViewFlowLayout又达不到效果,自己动手写了一个瀑布流的layout,下面是我的心路路程 先 ...

  4. Linux服务器上ftp的搭建和使用

    知识点: 1.  FTP的简介.工作原理 2.在Linux上搭建FTP服务器 参考: 阿里云文档:https://help.aliyun.com/knowledge_detail/60152.html ...

  5. AD 域中给AD 用加登录本地计算的权限

    说明:一般新添加的AD 用户没有登录计算机电脑的权限,如果需要添加登录权限. 步骤:1.打开Active Directory 用户和计算机 步骤:2.打开某个用户 步骤3; 如下图.

  6. 【Detection】R-FCN: Object Detection via Region-based Fully Convolutional Networks论文分析

    目录 0. Paper link 1. Overview 2. position-sensitive score maps 2.1 Background 2.2 position-sensitive ...

  7. vue下个兄弟节点

    checkOne(e) { e.currentTarget.nextElementSibling.style.background = 'red' }

  8. 浅谈NodeJs的模块机制

    J历史 我们都知道,js在刚被创建的时候,只是为了在网页上写一些小脚本而已,比如网页特效,表单验证等等,创立者也许没觉悟到以后的js会发展到如此规模.这是web1.0时代. 在web 2.0时代,各种 ...

  9. mysql的基本的数据库的查询

    学习一个数据库我们要学习哪些东西: sql数据库的话, curd. 对于查询,要注意表的关联的查询. 索引,触发器,对于控制连接量,脚本, 数据库的可视化工具,权限管理. http://www.360 ...

  10. linux加域退域

    realm list realm leave od.com realm join -U Administrator od.com