迅雷编程题
迅雷编程题
#include <bits/stdc++.h> using namespace std; // 判断两个数是否互质 bool prime(long long inputa, long long inputb) { long long min_num = min(inputa, inputb); for(long long i=2; i<=min_num; i++) { if(inputb % i == 0 && inputa % i == 0) return false; } return true; } // 1. 求素勾股数 void test01() { long long N; cin >> N; long long a, b, c; vector<vector<long long> > vvc; for(a=1; a<=N; a++) { for(b=a+1; b<=N; b++) { for(c=b+1; c<=N; c++) { if(a*a + b*b == c*c && a < b < c) { vector<long long> vc = {a, b, c}; vvc.push_back(vc); } } } } int count = 0; for(size_t i=0; i<vvc.size(); i++) { if(prime(vvc[i][0] , vvc[i][1]) && prime(vvc[i][1] , vvc[i][2]) && prime(vvc[i][2] , vvc[i][0] )) count++; // cout << vvc[i][0] << " " << vvc[i][1] << " " << vvc[i][2] << endl; } cout << count << endl; } // 2. 红黑积木 void test02() { int A, B; cin >> A >> B; int A_num = 0; for(int i=0; i<7; i++) { if(A*i + B*(7-i) < 0) { if(i > A_num) A_num = i; } } int B_num = 17 - (2*A_num+3); A_num = 2*A_num + 3; cout << B_num*B + A_num*A << endl; }有大神有更好的方法吗 #迅雷#