| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 620 人关注过本帖
标题:n个数的最大公约数问题
只看楼主 加入收藏
我是刘兴东啦
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2013-4-20
结帖率:0
收藏
 问题点数:0 回复次数:5 
n个数的最大公约数问题
各位大哥大姐 ,我这里有一个求最大公约数的问题  
只求两个数的我会
这个要求求n个数的最大公约数
输入包含多个测试实例,每个测试实例的开始是一个正整数n,然后是n个正整数,当n为零时结束。
为每组测试数据输出他们的最大公约数 例如:
input
2  4  6
3  2  5  7
0
output
2
1
搜索更多相关主题的帖子: 测试 公约数 正整数 
2013-04-20 16:31
Susake
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:女儿国的隔壁
等 级:贵宾
威 望:23
帖 子:2288
专家分:6481
注 册:2012-12-14
收藏
得分:0 
有一个类似的...中午回的贴
http://bbs.bccn.net/viewthread.php?tid=404907&page=1#pid2281960

 

仰望星空...........不忘初心!
2013-04-20 16:57
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:0 
这个是一起算的、、
程序代码:
#include <stdio.h>

int judge(int a[], int count, int base)
{
    int tmp = 0;
    while (count)
    {
        tmp += 0 == a[--count] % base;
    }
    return tmp >= 2;
}

void Divide(int a[], int count, int base)
{
    while (count)
    {        
        if (0 == a[--count] % base)
            a[count] /= base;
    }
}

int max(int a[], int count)
{
    int max = 0;
    while (count--)
    {
        max = (max < a[count]) ? a[count] : max;
    }
    return max;
}

int main (void)
{
    int i, tmp = 1;
    int n, a[128];
    while (scanf("%d", &n), n > 0)
    {
        tmp = 1;
        for (i = 0;i < n;scanf("%d", &a[i++]));
        for (i = 2;i < max(a, n);++i)
        {
            if (!judge(a, n, i))    continue;
            Divide(a, n, i);
            tmp *= i--;
        }
        for (i = 0;i < n;tmp *= a[i++]);
        printf("%d\n", tmp);
    }

    return 0;
}


[fly]存在即是合理[/fly]
2013-04-20 19:31
ly371031846
Rank: 2
等 级:论坛游民
帖 子:40
专家分:79
注 册:2013-4-9
收藏
得分:0 
#include <stdio.h>
#include <string.h>
int f(int a,int b)
{int t; if(a>b) { t=a;a=b;b=t; }
for(t=a;t%a||t%b;t+=a){}; return t; }
int main(){int a[20];
int i,k;
int n;
printf("输入个数:");
scanf("%d",&n);
for(i=0;i<n;i++)
{ printf("输入第%d个数:",i+1);
scanf("%d",&a[i]); }
k=1;
for(i=0;i<n;i++)
{ k=f(k,a[i]); }
 printf("\n最小公倍数为:%d\n",k);
 return 0; }

菜鸟一只,望对楼主有用!!!
2013-04-21 09:38
suixinwuji
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2013-4-20
收藏
得分:0 
程序代码:
#include<stdio.h>
int f(int a,int b)    //定义函数 求两个数的最大公约数
{
int z;
z=b;
{while(a%z)
z--;}
b=z;
return b;
}
void main()
{
int n,i,a[10000],m;
printf("Please input n:\n");    //输入n
scanf("%d",&n);
printf("Please input %d numbers:\n",n);
for(i=0;i<n;i++)                         //输入n个数
   scanf("%d",&a[i]);
m=f(a[0],a[1]);
for(i=2;i<n;i++)
m=f(a[i],m);
  
printf("这%d个数的最大公约数为%d\n",n,m);
}
2013-04-21 10:44
suixinwuji
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2013-4-20
收藏
得分:0 
免费奉送
程序代码:
#include<stdio.h>
int f(int a,int b)    //定义函数 求两个数的最大公约数
{
int z;
z=b;
{while(z%a)
z+=b;}
b=z;
return b;
}
void main()
{
int n,i,a[10000],m;
printf("Please input n:n");    //输入n
scanf("%d",&n);
printf("Please input %d numbers:n",n);
for(i=0;i<n;i++)                         //输入n个数
   scanf("%d",&a[i]);
m=f(a[0],a[1]);
for(i=2;i<n;i++)
m=f(a[i],m);
  
printf("这%d个数的最大公倍数为%dn",n,m);
}
2013-04-21 10:50
快速回复:n个数的最大公约数问题
数据加载中...
 
   



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

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