主要是会求最大公约数的更相减损术
代码:
/*
by qr jobdu 1465 2014-9-19
*/
#include <stdio.h>
int getHCM(int num1,int num2){ //更相减损术
int temp;
if(num1<num2){ //num1>num2
temp=num1;
num1=num2;
num2=temp;
}else if(num1==num2){
return num1;
}
temp=num1-num2;
while(temp!=num2){
num1=num2;
num2=temp;
if(num1<num2){
temp=num1; //使num1>num2
num1=num2;
num2=temp;
}
temp=num1-num2;
}
return num2;
}
int main(){
int n;
scanf("%d",&n);
int arr[600];
while(n!=0){
int i;
for(i=0;i<n;i++){
scanf("%d",&arr[i]);
}
int sum=0;
for(i=0;i<n-1;i++){
for(int j=i+1;j<n;j++){
if(getHCM(arr[i],arr[j])==1){
sum++;
}
}
}
printf("%d\n",sum);
scanf("%d",&n);
}
return 0;
}