2018/11/19

142 阅读1分钟

虽然理解但要自己写却写不出来的函数

1.最大公约数 hcf 函数与最小公倍数lcd函数:

int hcf(int m,int n) 
{
    int t,r;
    if(n>m)
{
    t=n;n=m;m=t;
}
    while ((r=m%n)!=0)
{
    m=n;
    n=r;
}
    return (n);
}

int lcd(int m,int n,int h)
{
    return (m*n/h);
}

2.亲密数对与完数之和:

{
    int facsum(int); /*函数原型*/
    int m,n,s=0;
    cout<<"亲密数对:\n";
    for (m=2;m<=500;m++)
{
    n=facsum(m);
    if((m==facsum(n))&&(m<=n)) cout<<"["<<m<<","<<n<<"]"<<endl; /*按要求输出亲密数对*/
    if(n==m) s=s+m;
}
    cout<<"完数之和:"<<s<<"\n";
}
int facsum(int m1) /*函数定义 facsum,求 m 的所有因子之和*/
{
    int f=1,k;
    for(k=2;k<=m1/2;k++)
    if(m1%k==0)
    f=f+k;
    return f;
}

艮难个思维几时先可以锻炼出来啊