作者:佚名 | 来源:网络 | 添加时间:2007-11-24 08:57:59 | 人气:645
using System; using System.Collections; using System.Collections.Generic; using System.Text; namespace GongYueShu { // 实现IComparer接口,为后面的ArrayList按照数字排序作准备 class NumCompare : IComparer { public int Compare(object a, object b) { return ( (int)a - (int)b ); } } class Program { static void Main(string[] args) { Console.WriteLine("Enter number, split by space: "); // 读取数字并保存为数组 string[] tmp_strs = Console.ReadLine().Split( ' ' ); // 将数组转换为ArrayList,主要为了排序 ArrayList nums_list = new ArrayList(); foreach (string num in tmp_strs) { nums_list.Add( int.Parse(num) ); } // 排序,得到数字中最小的一个 NumCompare MyCompare = new NumCompare(); nums_list.Sort( MyCompare ); int min_num = int.Parse( nums_list[0].ToString() ); // 最大公约数肯定大于等于1,且小于等于最小的那个数。 // 依次整除,如果余数全部为0说明是一个约数,知道得到最大的。 int gong_yue = 1; for (int index = 1; index <= min_num; index++) { bool found = true; foreach (object tmp_num in nums_list) { if ((int)tmp_num % index != 0) { found = false; break; } } if (found) { gong_yue = index; } } Console.WriteLine( "最大公约数为: " + gong_yue ); } } } |