| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 431 人关注过本帖
标题:求帮助,帮看看这个怎么编
只看楼主 加入收藏
Sandy143
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2015-3-23
结帖率:66.67%
收藏
已结贴  问题点数:15 回复次数:2 
求帮助,帮看看这个怎么编
已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少。

输入格式
输入一个正整数N。

输出格式
输出一个整数,表示你找到的最小公倍数。
我这样编有错吗
#include<stdio.h>
long zy(long a,long b);
int main(){
    long n,t,k,i;
    scanf("%ld",&n);
    if((zy(n-2,n)==1))
    printf("%d",(n-2)*(n-1)*n);
    else{
        t=zy(n-2,n);
        k=(n-2)*n;
        i=n-3;
        if((i*n)>(k/t)){
          printf("%ld",i*(n-1)*n);   
        }
        else
        printf("%ld",(n-2)*(n-1)*n);
    }
    return 0;
}

long zy(long a,long b){
    long i;
    for(i=a;i>=1;i--){
        if(((a%i)==0)&&((b%i)==0)){
            return i;
            break;
        }
    }
}
搜索更多相关主题的帖子: 最小公倍数 include 正整数 
2015-03-26 18:07
longwu9t
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:732
专家分:2468
注 册:2014-10-9
收藏
得分:15 
不知道运行结果是否正确
请楼主放出可供验证的答案


程序代码:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

typedef unsigned long long ULL;

ULL gcd(ULL a, ULL b) {
    return (a % b == 0 ? b : gcd(b, a % b));
}

int main(void) {
    ULL *num = NULL;
    ULL i, j, k, l, t, n, maxpri, result;

    if(scanf("%lld", &n) != 1 || n < 3) return 1;

    l = n - 1;

    if(!(num = malloc(l * sizeof(ULL)))) return 1;

    for(k = 0; k < l; k++) num[k] = k + 2;

    for(i = 0; i < l; i++) {
        if(num[i])
            for(t = sqrt(num[i]), j = 2; j <= t; j++)
                if(num[i] && num[i] % j == 0)
                    for(k = 0; i + j * k < l; k++)
                        num[i + j * k] = 0;
    }

    for(i = l - 1; i > 0; i--) {
        if(num[i]) {
            maxpri = num[i];
            break;
        }
    }

    if(n == 3)  result = 6;

    else if(n - 1 > maxpri) {
        result = maxpri * n * (n - 1)  / gcd(n - 1, n);

    } else if(n - 1 == maxpri) {
        result = maxpri * n * (n - 2) / gcd(n - 2, n);

    } else {
        result = maxpri * (n - 1) * (n - 2) / gcd(n - 2, n - 1);
    }

    printf("%llu\n", result);
    free(num);
    return 0;
}

Only the Code Tells the Truth             K.I.S.S
2015-03-26 22:36
Sandy143
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2015-3-23
收藏
得分:0 
输入 9
输出 504;
2015-03-26 22:45
快速回复:求帮助,帮看看这个怎么编
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016292 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved