nyoj-517 最小公倍数

来源:互联网 发布:单网络计划施工计划图 编辑:程序博客网 时间:2024/05/21 00:18

描述
为什么1小时有60分钟,而不是100分钟呢?这是历史上的习惯导致。
但也并非纯粹的偶然:60是个优秀的数字,它的因子比较多。
事实上,它是1至6的每个数字的倍数。即1,2,3,4,5,6都是可以除尽60。

我们希望寻找到能除尽1至n的的每个数字的最小整数m.
输入
多组测试数据(少于500组)。
每行只有一个数n(1<=n<=100).
输出
输出相应的m。
样例输入
2
3
4
样例输出
2
6
12

大树 仿照阶乘 改一下 就ok

#include <iostream>#include <string.h>using namespace std;int main(){    int n;    while (cin>>n)    {        int a[100],b[100],i,j;        memset(a,0,sizeof(a));        memset(b,0,sizeof(b));        for (i=0;i<n;i++)            a[i] = i+1;        for (i=1;i<n;i++)        {            for (j=i+1;j<n;j++)            {                if (a[j]%a[i]==0)                    a[j]=a[j]/a[i];            }        }       // for (i=0;i<n;i++)       //     cout<<a[i];       // cout<<endl;        int next=0,mut,count=1;        b[0]=1;        for (i=1;i<n;i++)        {            for (j=1;j<=count;j++)            {                mut = a[i]*b[j-1]+next;                b[j-1] = mut%10;                next = mut/10;            }            while (next)            {                count++;                b[count-1]=next%10;                next = next/10;            }        }        for (i=count-1;i>=0;i--)            cout<<b[i];        cout<<endl;    }    return 0;}
原创粉丝点击