C#求最大公约数

来源:互联网 发布:达观数据 招聘 编辑:程序博客网 时间:2024/06/05 15:46

最近一个项目要求最大公约数,本想省点力气网上找一个,找了一圈下来都是两个数之间求最大公约数的。

我的要求是多个整数求最大公约数。

于是自己写了一个,不过在效率上也有缺憾,由于从1开始遍历,求公约数的数值较大时,该函数运行效率会变慢。数据个数影响不大。

比如求100000和900000的公约数就不适用,太慢。贴上代码


public int MaxGYS(List<int> Number)        {            int minNumber = Number.Min();            int gys = 1;            for (int i = 1; i <= minNumber; i++)            {                for (int j = 0; j < Number.Count; j++)                {                    if (Number[j] % i != 0)                    {                        break;                    }                    else                    {                        if (Number.Count == j + 1)                            gys = i;                    }                }            }            return gys;        }


0 0
原创粉丝点击