用可变个数的ArrayList求素数

Posted on 2008-01-14 17:31 普若伽门 阅读(30) 评论(0)  编辑 收藏 所属分类: .NET

ArrayList可以充当一个可变的容器,有时候方便处理未知大小的一组数据。

 1using System;
 2using System.Collections;  //为了使用ArrayList
 3class prime
 4{
 5    
 6    public static ArrayList arr=new ArrayList();    
 7    public static void AddPrime(int arg){
 8        arr.Add(2);        
 9        for (int i=3;i <= arg ;i++)
10        {
11            if(IsPrime(i)){
12                arr.Add(i);
13            }
            
14        }

15        
16
17    }

18    public static bool IsPrime(int arg){        
19        int i=0;
20        
21        while(Convert.ToInt16(arr[i]) * Convert.ToInt16(arr[i]) <=arg){
22            if(arg % Convert.ToInt32(arr[i])==0return false;
23            i++;
24        }

25        
26        //下面的方法完全正确,不过我决定尝试下ArrayList方法。
27        /*
28        foreach (int i in arr)
29        {    
30            if(i*i <= arg){                
31            if(arg % i==0) return false;
32            }else{
33            break;
34            }        
35            
36        }
37        */

38        return true;
39    }

40    public static void Main(){        
41        AddPrime(50);        
42        Console.WriteLine("50以内的素数有:");
43        foreach(int i in arr){
44            Console.Write("{0} ",i);
45        }
    
46            Console.WriteLine();
47            Console.WriteLine("------------------------------------");
48            Console.WriteLine("以下是ArrayList 对象的演示。");
49            Console.Write("arr[1]:{0}  ------- ",arr[1]); //这个打印不规范,arr[1] 为Object,但是仍然能够输出值。
50            Console.Write("Convert.ToInt32(arr[1])*Convert.ToInt32(arr[1]):{0} ",Convert.ToInt32(arr[1])*Convert.ToInt32(arr[1])); //这个打印才是正确做法。
51            
52            
53    }

54}

55
代码下载:/Files/x116/prime.rar
■ 拿起勇气,探索你未知的世界。

标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2008-01-14 17:38 编辑过
 
另存  打印
最新IT新闻:
· 微软高管:Wii用户最终会成为Xbox 360用户
· 遵守YouTube案裁定 谷歌将陷入隐私指控深渊
· iPhone入华在即 中国手机产业生存面临考验
· 阿里巴巴集团再向淘宝注资20亿元
· 56被关一月 危机的是整个视频业