网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

杭电OJ2028最小的公倍数之和C语言版-创新互联

我们看到这一题最先想到的是什么方法??

创新互联公司成立于2013年,是专业互联网技术服务公司,拥有项目网站设计、成都网站设计网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元盐津做网站,已为上家服务,为盐津各地企业和个人服务,联系电话:18980820575

我想十有八九想到的都是暴力枚举的方法:先把全部的数字相乘,再从1开始枚举一直到有一个最小的数可以整除所有的数字。但作为上进的程序员,我们肯定会不禁想:这是啥啊,怎么这么拉啊。
所以我们才在这里遇见,寻求不拉的方法

那么在这里,我介绍的是用数学规律的解法:
关键思路:
1:两个数的最小公倍数等于两个数的乘积再除与两个数的大公因数
2:重复使用辗转相除法得到大的公因数(注意大小的先后问题,若是小的在前则要交换,故要先判断大小)
3:多个数的最小公倍数可以利用前面两个数的最小公倍数与下一个数求最小公倍数,如此直到最后一个数,便得到了多个数的最小公倍数
4:为了避免溢出,第一步不妨先用一个数除与大公因数再乘于另一个数

#includeint main()
{int n,inset,o,p;
    int temp,temp1;
    while(scanf("%d",&n)!=EOF)
    {scanf("%d",&temp);
        for(int i=0;iscanf("%d",&temp1);
        if(temp   inset=temp;
           temp=temp1;
           temp1=inset;
         }
            o=temp;p=temp1;
         while(o%p!=0)
          {   inset=o%p;
           o=p;
           p=inset;
          }
           temp=temp/p*temp1;//避免了溢出
        }
        printf("%d\n",temp);
    }
    return 0;}

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


当前标题:杭电OJ2028最小的公倍数之和C语言版-创新互联
本文来源:http://bjjierui.cn/article/hcsoo.html

其他资讯