本帖最后由 Liu阳 于 2013-10-22 20:44 编辑
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- namespace test9
- {
- //9、 在label控件中随机输入20个1~1000之间的整数,求出其中所有的素数的和。
- public partial class Form1 : Form
- {
- public Form1()
- {
- InitializeComponent();
- }
- ArrayList arrList = new ArrayList();
- private void button1_Click(object sender, EventArgs e)
- {
- int sum = 0;
- //遍历数组
- for (int i = 0; i < arrList.Count; i++)
- {
- //素数:除了1和自身没有可以整除的数
- //检查一个正整数N是否为素数,最简单的方法就是试除法
- //将该数N用小于等于根号N的所有素数去试除,若均无法整除,则N为素数
- for (int j = 2; j < Math.Sqrt(Convert.ToInt32(arrList[i])); j++)
- {
- //遍历所有可能的数能否被整除
- if (Convert.ToInt32(arrList[i]) % j == 0)
- {
- //能就踢出数组
- arrList.Remove(arrList[i]);
- //能被整除,跳出节省无用的运算
- break;
- }
- }
- }
- //遍历求和
- for (int i = 0; i < arrList.Count; i++)
- {
- sum += Convert.ToInt32(arrList[i]);
- }
- label2.Text += sum.ToString();
- }
- private void Form1_Load(object sender, EventArgs e)
- {
- //20个0-1000的数
- Random ran = new Random();
- for (int i = 0; i < 20; i++)
- {
- int num = ran.Next(0, 1000);
- arrList.Add(num);
- label1.Text += num + " ";
- }
- }
- }
- }
- //我写的,希望对你有帮助
复制代码 |