北京大学机试 最简真分数 Easy

基本思路:

无;

 

关键点:

无;

 

#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
using namespace std;

vector<int>vec;

int mostin(int a, int b) {
	if (b == 0) {
		return a;
	}
	mostin(b, a%b);
}

bool charge(int a, int b) {
	if (b == a || (a!=1)&&(b % a == 0))
		return false;
	if (mostin(a, b) == 1)
		return true;
	else
		return false;
}

int main() {
	int n;
	while (cin >> n) {
		if (n == 0)
			break;
		int cnt = 0;
		vec.resize(n);
		for (int i = 0; i < n; i++) {
			cin >> vec[i];
		}
		sort(vec.begin(), vec.end());
		for (int i = 0; i < n-1; i++) {
			for (int j = i+1; j < n; j++) {
				if (charge(vec[i], vec[j])) {
					cnt++;
				}
			}
		}
		cout << cnt << endl;
	}
}

  

posted @ 2020-03-11 12:03  暮云林凌  阅读(186)  评论(0)    收藏  举报