题解 | #最简真分数#

最简真分数

http://www.nowcoder.com/practice/1f1db273eeb745c6ac83e91ff14d2ec9

C++ 题目没说:输入0结束

#include<iostream>
#include<string>
#include<algorithm>
#define MAX 600
using namespace std;
int a[MAX + 1];
//判断是否最简真分数
bool is_ok(int i, int j) {
	if (a[i] == 1)return true;
	for (int k = 2; k <= a[i]; k++) {
		if (a[j] % k == 0&&a[i]%k==0) {
			return false;
		}
	}
	return true;
}
int main() {

	int n; 
	while (cin >> n) {
		if (n == 0)return 0;
		for (int i = 0; i < n; i++) {
			cin >> a[i];
		}
		sort(a, a + n);
		int num = 0;//组合数量
		for (int i = 0; i < n - 1; i++) {//选分子
			for (int j = i + 1; j < n; j++) {//选分母
				if (a[i] == a[j])continue;//出现相同的数字
				if (is_ok(i, j)) {
					num++;
				}
			}
		}
		cout << num << endl;
	}
	
	
	return 0;
}
全部评论

相关推荐

在笔试的大西瓜很矫健:校招数分不用想了,这经历和学历都不够用,大厂更别想,初筛都过不了,说点不好听的小厂数分都进不去(小厂也是假数分),要两个对口实习+3个项目(或者3+2),而且要有含金量才能补一点你的学历劣势。 建议刷实习,社招找数分,校招看运气,能入行业就行,可以运营转数分
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务