#include<stdio.h>
int main()
{
int n,i,a[100000],max,min,gong;//报错数组越界堆栈溢出可能是数组大小不够
while(scanf("%d",&n)!=EOF)
{
for(i=0;i<n;i++)
scanf("%d",&a[i]);
max=a[0];min=a[0];
for(i=1;i<n;i++)
{
if(a[i]>max) max=a[i];
if(a[i]<min) min=a[i];
}
for(i=min;i>=1;i--)//最大公约数
if(max%i==0&&min%i==0)
{
gong=i;break;
}
printf("%d %d %d\n",min,max,gong);
}
} //注意最大最小开始都应设为a[0]
#include<iostream>
using namespace std;
int zdgy(int a,int b){
while(a%b!=0){
a=a-a/b*b;
int temp=a;
a=b;
b=temp;
}
return b;
}
int main(){
int n;
while(cin>>n){
int *a=new int[n],max,min;
for(int i=0;i<n;i++){
cin>>a[i];
if(i==0)
max=min=a[0];
if(a[i]>max) max=a[i];
if(a[i]<min) min=a[i];
}
cout<<min<<" "<<max<<" "<<zdgy(max,min)<<endl;
}
} import java.util.*;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNextInt()) {
int n = in.nextInt();
int a[] = new int[n];
for (int i = 0; i < n; i++) {
a[i] = in.nextInt();
}
Arrays.sort(a);
int min = a[0];
int max = a[n - 1];
int maxGYNum = getMaxGYNum(min, max);
System.out.println(min + " " + max + " " + maxGYNum);
}
}
public static int getMaxGYNum(int a, int b) {
while (b != 0) {
int t = a % b;
a = b;
b = t;
}
return a;
}
//也可以使用下面的方法来求最大公约数
public static int getMaxGYNum(int a, int b) {
while(a!=b){
if(a>b){
a = a-b;
}
if(b>a){
b = b-a;
}
}
return a;
}
} #include<bits/stdc++.h>
using namespace std;
int f(int b,int c)
{
if(c==0)
return b;
else return f(c,b%c);
}
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
int a[n];
for(int i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
sort(a,a+n);
printf("%d %d %d\n",a[0],a[n-1],f(a[0],a[n-1]));
}
return 0;
} #include <iostream>
using namespace std;
#include "vector"
#include<algorithm>
int fun(int a,int b){
while(a % b != 0){
int temp = a%b;
a=b;
b = temp;
}
return b;
}
int main() {
int n;
while (cin >> n) {
vector<int>v(n);
for (int i = 0; i < n; i++) {
cin >> v[i];
}
sort(v.begin(), v.end());
int max_num = v[n - 1];
int min_num = v[0];
cout << min_num << " " << max_num << " " << fun(max_num,min_num);
cout<<endl;
}
}
#include <algorithm>
#include <climits>
#include <iostream>
#include <numeric>
using namespace std;
int main() {
int n;
while (cin >> n) {
int maximum = 0, minimum = INT_MAX;
while (n--) {
int x;
cin >> x;
maximum = max(maximum, x);
minimum = min(minimum, x);
}
cout << minimum << " " << maximum << " " << gcd(maximum, minimum) << endl;
}
return 0;
} #include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int n;
while (cin >> n) {
vector<int> my;int temp;
for (int i = 0; i < n; ++i) {
cin >> temp;
my.push_back(temp);
}
sort(my.begin(),my.end());
int min = my[0],max = my[my.size()-1];
cout << min << " " << max << " ";
if(max % min == 0){
cout << min << endl;
}else{
int maxl = 1;
for(int i = 2;i < min;++i){
if(min % i == 0 && max % i == 0){
maxl = i;
}
}
cout << maxl << endl;
}
}
}
// 64 位输出请用 printf("%lld") #include <cstdio>
#include <climits>
using namespace std;
int gcd(int a,int b){
if(b==0) return a;
else return gcd(b,a%b);
}
int main(){
int n;
while(scanf("%d",&n) != EOF){
int arr[n];
int maximum = -INT_MAX, minimum = INT_MAX, mgcd;
for(int i = 0; i < n; ++i){
scanf("%d",&arr[i]);
if(arr[i] > maximum) maximum = arr[i];
if(arr[i] < minimum) minimum = arr[i];
}
mgcd = gcd(maximum,minimum);
printf("%d %d %d\n",minimum,maximum,mgcd);
}
return 0;
} #include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
long long gcd(long long x, long long y) {
if (y == 0) return x;
return gcd(y, x % y);
}
int main() {
int a;
while (cin >> a) {
vector<long long> vec;
for (int i = 0; i < a; ++i) {
long long temp;
cin >> temp;
vec.push_back(temp);
}
sort(vec.begin(), vec.end());
long long x = vec[0];
long long y = vec[a - 1];
cout << x << " " << y <<" "<< gcd(x, y) <<endl;
}
}
// 64 位输出请用 printf("%lld") #include <iostream>
using namespace std;
int gcd(int m, int n) {
int max = m > n ? m : n ;
int min = m < n ? m : n ;
return max % min == 0 ? min : gcd(min, max - min);
}
int main() {
int n;
while (cin >> n) {
int min = 0x7fffffff, max = 0x80000000;
int *a = new int[n];
for (int i = 0 ; i < n ; i++) {
cin >> a[i];
if (a[i] > max)
max = a[i];
if (a[i] < min)
min = a[i];
}
cout << min << " " << max << " " << gcd(max, min) << endl;
}
return 0;
} #include<stdio.h>
int findmax(int a[],int n){
int i,max;
max=a[0];
for(i=1;i<n;i++)
if(max<a[i])
max=a[i];
return max;
}
int findmin(int a[],int n){
int i,min;
min=a[0];
for(i=1;i<n;i++)
if(min>a[i])
min=a[i];
return min;
}
int findmaxnum(int a,int b){
int c;
while(a%b!=0){
c=a;
a=b;
b=c%b;
}
return b;
}
int main(){
int n,i,min,max,maxnum;
int a[100000];
while(scanf("%d",&n)!=EOF){
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
min=findmin(a,n);
max=findmax(a,n);
maxnum=findmaxnum(max,min);
printf("%d %d %d\n",min,max,maxnum);
}
} #include<iostream>
using namespace std ;
int GCD(int x , int y) {
if(y == 0) return x ;
else return GCD(y , x%y) ;
}
int main() {
int max,min,n,a ; //a为当前输入
while(cin >> n) {
cin >> a ;
max = a ;
min = a ;
for(int i = 1 ; i < n ; i++) {
cin >> a ;
if(max < a) max = a ;
if(min > a) min = a ;
}
int res = GCD(max , min) ;
cout << min << ' ' << max << ' ' << res << endl ;
}
return 0 ;
} #include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int c_max(int a,int b)//辗转相除法或欧几里得算法
{
if(b == 0)
return a;
else
return c_max(b, a % b);
}
int main(void)
{
int n;
while(cin >> n)
{
vector<int> arr;
int x;
while(n--)
{
cin >> x;
arr.push_back(x);
}
sort(arr.begin(), arr.end(),less<int>());
int len = arr.size();
cout << arr[0] << ' ' << arr[len - 1] << ' ';
int c_value = c_max(arr[0], arr[len - 1]);
cout << c_value << endl;
}
return 0;
} #include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int n;
while(cin >> n)
{
int a[n];
for(int i=0;i<n;i++)
{
cin >> a[i];
}
sort(a,a+n);
int min=a[0];
int max=a[n-1];
int yue;
for(int j=min;j>=1;j--)
{
if(min%j==0&&max%j==0)
{
yue=j;
break;
}
}
cout << min << " " << max << " " << yue << endl;
}
return 0;
} #include<iostream>
using namespace std;
int GCD(int a,int b){
if(b==0) return a;
else return GCD(b,a%b);
}
int main(){
int n;
while(cin>>n){
int arr[n];
for(int i=0;i<n;i++)
scanf("%d",&arr[i]);
int min=2147483647,max=0;
for(int i=0;i<n;i++){
if(arr[i]<min) min=arr[i];
if(arr[i]>max) max=arr[i];}
int ans=GCD(min,max);
printf("%d %d %d\n",min,max,ans);
}
} #include<cstdio>
#include<iostream>
#include<vector>
using namespace std;
int gongyue(int a,int b){
if(b==0){
return a;
}
else{
return gongyue(b,a%b);
}
}
int main(){
int n,c;
int temp=0;
while(scanf("%d",&n)!=EOF){
vector<int> ab;
while(n!=0){
scanf("%d",&c);
ab.push_back(c);
n--;
}
int max=ab[0];
int min=ab[0];
for(int i=1;i<ab.size();i++){
if(ab[i]>max){
max=ab[i];
}
else if(ab[i]<min){
min=ab[i];
}
}
printf("%d %d %d\n",min,max,gongyue(max,min));
}
return 0;
} #include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;
int func(int a, int b)
{
if(a % b == 0){
return b;
} else{
return func(b, a % b);
}
}
int main()
{
int n;
while(cin>>n){
if(n < 1){
break;
}
int arr[n];
int minx, maxx;
for(int i = 0; i < n; i++){
cin>>arr[i];
if(i == 0){
minx = arr[0];
maxx = arr[0];
} else{
minx = minx < arr[i] ? minx : arr[i];
maxx = maxx > arr[i] ? maxx : arr[i];
}
}
cout<<minx<<" "<<maxx<<" "<<func(maxx, minx)<<endl;
}
return 0;
}