3 solutions
-
0
-
0
边峻以 (zdqz202548) LV 4 MOD @ 2026-1-13 17:12:08
#include <bits/stdc++.h> using namespace std; int main(){ ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); int T; cin>>T; while(T--){ int n; cin>>n; int cnt1=0,cnt2=0,cnt3=0; for(int i=1;i<=n;i++){ int x;cin>>x; if(x%31) cnt1++; if(x%32) cnt2++; if(x%3==0) cnt3++; } int c=min(cnt1,cnt2); cout<<(cnt3+c+((max(cnt1,cnt2)-min(cnt1,cnt2))/3))<<'\n'; } return 0; }
-
0
#include <bits/stdc++.h> using namespace std; int main(){ ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); int T; cin>>T; while(T--){ int n; cin>>n; int cnt1=0,cnt2=0,cnt3=0; for(int i=1;i<=n;i++){ int x;cin>>x; if(x%3==1) cnt1++; if(x%3==2) cnt2++; if(x%3==0) cnt3++; } int c=min(cnt1,cnt2); cout<<(cnt3+c+((max(cnt1,cnt2)-min(cnt1,cnt2))/3))<<'\n'; } return 0; }-
银河xy (影蓝银河)
@ 2025-12-30 17:45:42
#include #include using namespace std;
// 计算两个数的最大公约数,使用欧几里得算法 long long gcd(long long a, long long b) { return b == 0 ? a : gcd(b, a % b); }
// 计算一个数的约数个数 int countDivisors(long long num) { int count = 0; // 遍历从 1 到 num 的平方根 for (long long i = 1; i * i <= num; ++i) { if (num % i == 0) { // 如果 i 是 num 的约数 if (i * i == num) { // 若 i 是 num 的平方根,只算一个约数 ++count; } else { // 否则 i 和 num/i 都是约数,算两个 count += 2; } } } return count; }
int main() { int n; cin >> n; vector numbers(n); for (int i = 0; i < n; ++i) { cin >> numbers[i]; } // 先将第一个数作为初始的最大公约数 long long commonGCD = numbers[0]; // 遍历数组,计算所有数的最大公约数 for (int i = 1; i < n; ++i) { commonGCD = gcd(commonGCD, numbers[i]); } // 计算最大公约数的约数个数 int divisorCount = countDivisors(commonGCD); cout << divisorCount << endl; return 0; }
#include #include using namespace std;
// 计算两个数的最大公约数,使用欧几里得算法 long long gcd(long long a, long long b) { return b == 0 ? a : gcd(b, a % b); }
// 计算一个数的约数个数 int countDivisors(long long num) { int count = 0; // 遍历从 1 到 num 的平方根 for (long long i = 1; i * i <= num; ++i) { if (num % i == 0) { // 如果 i 是 num 的约数 if (i * i == num) { // 若 i 是 num 的平方根,只算一个约数 ++count; } else { // 否则 i 和 num/i 都是约数,算两个 count += 2; } } } return count; }
int main() { int n; cin >> n; vector numbers(n); for (int i = 0; i < n; ++i) { cin >> numbers[i]; } // 先将第一个数作为初始的最大公约数 long long commonGCD = numbers[0]; // 遍历数组,计算所有数的最大公约数 for (int i = 1; i < n; ++i) { commonGCD = gcd(commonGCD, numbers[i]); } // 计算最大公约数的约数个数 int divisorCount = countDivisors(commonGCD); cout << divisorCount << endl; return 0; }
#include #include using namespace std;
// 计算两个数的最大公约数,使用欧几里得算法 long long gcd(long long a, long long b) { return b == 0 ? a : gcd(b, a % b); }
// 计算一个数的约数个数 int countDivisors(long long num) { int count = 0; // 遍历从 1 到 num 的平方根 for (long long i = 1; i * i <= num; ++i) { if (num % i == 0) { // 如果 i 是 num 的约数 if (i * i == num) { // 若 i 是 num 的平方根,只算一个约数 ++count; } else { // 否则 i 和 num/i 都是约数,算两个 count += 2; } } } return count; }
int main() { int n; cin >> n; vector numbers(n); for (int i = 0; i < n; ++i) { cin >> numbers[i]; } // 先将第一个数作为初始的最大公约数 long long commonGCD = numbers[0]; // 遍历数组,计算所有数的最大公约数 for (int i = 1; i < n; ++i) { commonGCD = gcd(commonGCD, numbers[i]); } // 计算最大公约数的约数个数 int divisorCount = countDivisors(commonGCD); cout << divisorCount << endl; return 0; }
#include #include using namespace std;
// 计算两个数的最大公约数,使用欧几里得算法 long long gcd(long long a, long long b) { return b == 0 ? a : gcd(b, a % b); }
// 计算一个数的约数个数 int countDivisors(long long num) { int count = 0; // 遍历从 1 到 num 的平方根 for (long long i = 1; i * i <= num; ++i) { if (num % i == 0) { // 如果 i 是 num 的约数 if (i * i == num) { // 若 i 是 num 的平方根,只算一个约数 ++count; } else { // 否则 i 和 num/i 都是约数,算两个 count += 2; } } } return count; }
int main() { int n; cin >> n; vector numbers(n); for (int i = 0; i < n; ++i) { cin >> numbers[i]; } // 先将第一个数作为初始的最大公约数 long long commonGCD = numbers[0]; // 遍历数组,计算所有数的最大公约数 for (int i = 1; i < n; ++i) { commonGCD = gcd(commonGCD, numbers[i]); } // 计算最大公约数的约数个数 int divisorCount = countDivisors(commonGCD); cout << divisorCount << endl; return 0; }
#include #include using namespace std;
// 计算两个数的最大公约数,使用欧几里得算法 long long gcd(long long a, long long b) { return b == 0 ? a : gcd(b, a % b); }
// 计算一个数的约数个数 int countDivisors(long long num) { int count = 0; // 遍历从 1 到 num 的平方根 for (long long i = 1; i * i <= num; ++i) { if (num % i == 0) { // 如果 i 是 num 的约数 if (i * i == num) { // 若 i 是 num 的平方根,只算一个约数 ++count; } else { // 否则 i 和 num/i 都是约数,算两个 count += 2; } } } return count; }
int main() { int n; cin >> n; vector numbers(n); for (int i = 0; i < n; ++i) { cin >> numbers[i]; } // 先将第一个数作为初始的最大公约数 long long commonGCD = numbers[0]; // 遍历数组,计算所有数的最大公约数 for (int i = 1; i < n; ++i) { commonGCD = gcd(commonGCD, numbers[i]); } // 计算最大公约数的约数个数 int divisorCount = countDivisors(commonGCD); cout << divisorCount << endl; return 0; }
#include #include using namespace std;
// 计算两个数的最大公约数,使用欧几里得算法 long long gcd(long long a, long long b) { return b == 0 ? a : gcd(b, a % b); }
// 计算一个数的约数个数 int countDivisors(long long num) { int count = 0; // 遍历从 1 到 num 的平方根 for (long long i = 1; i * i <= num; ++i) { if (num % i == 0) { // 如果 i 是 num 的约数 if (i * i == num) { // 若 i 是 num 的平方根,只算一个约数 ++count; } else { // 否则 i 和 num/i 都是约数,算两个 count += 2; } } } return count; }
int main() { int n; cin >> n; vector numbers(n); for (int i = 0; i < n; ++i) { cin >> numbers[i]; } // 先将第一个数作为初始的最大公约数 long long commonGCD = numbers[0]; // 遍历数组,计算所有数的最大公约数 for (int i = 1; i < n; ++i) { commonGCD = gcd(commonGCD, numbers[i]); } // 计算最大公约数的约数个数 int divisorCount = countDivisors(commonGCD); cout << divisorCount << endl; return 0; }
#include #include using namespace std;
// 计算两个数的最大公约数,使用欧几里得算法 long long gcd(long long a, long long b) { return b == 0 ? a : gcd(b, a % b); }
// 计算一个数的约数个数 int countDivisors(long long num) { int count = 0; // 遍历从 1 到 num 的平方根 for (long long i = 1; i * i <= num; ++i) { if (num % i == 0) { // 如果 i 是 num 的约数 if (i * i == num) { // 若 i 是 num 的平方根,只算一个约数 ++count; } else { // 否则 i 和 num/i 都是约数,算两个 count += 2; } } } return count; }
int main() { int n; cin >> n; vector numbers(n); for (int i = 0; i < n; ++i) { cin >> numbers[i]; } // 先将第一个数作为初始的最大公约数 long long commonGCD = numbers[0]; // 遍历数组,计算所有数的最大公约数 for (int i = 1; i < n; ++i) { commonGCD = gcd(commonGCD, numbers[i]); } // 计算最大公约数的约数个数 int divisorCount = countDivisors(commonGCD); cout << divisorCount << endl; return 0; }
#include #include using namespace std;
// 计算两个数的最大公约数,使用欧几里得算法 long long gcd(long long a, long long b) { return b == 0 ? a : gcd(b, a % b); }
// 计算一个数的约数个数 int countDivisors(long long num) { int count = 0; // 遍历从 1 到 num 的平方根 for (long long i = 1; i * i <= num; ++i) { if (num % i == 0) { // 如果 i 是 num 的约数 if (i * i == num) { // 若 i 是 num 的平方根,只算一个约数 ++count; } else { // 否则 i 和 num/i 都是约数,算两个 count += 2; } } } return count; }
int main() { int n; cin >> n; vector numbers(n); for (int i = 0; i < n; ++i) { cin >> numbers[i]; } // 先将第一个数作为初始的最大公约数 long long commonGCD = numbers[0]; // 遍历数组,计算所有数的最大公约数 for (int i = 1; i < n; ++i) { commonGCD = gcd(commonGCD, numbers[i]); } // 计算最大公约数的约数个数 int divisorCount = countDivisors(commonGCD); cout << divisorCount << endl; return 0; }
#include #include using namespace std;
// 计算两个数的最大公约数,使用欧几里得算法 long long gcd(long long a, long long b) { return b == 0 ? a : gcd(b, a % b); }
// 计算一个数的约数个数 int countDivisors(long long num) { int count = 0; // 遍历从 1 到 num 的平方根 for (long long i = 1; i * i <= num; ++i) { if (num % i == 0) { // 如果 i 是 num 的约数 if (i * i == num) { // 若 i 是 num 的平方根,只算一个约数 ++count; } else { // 否则 i 和 num/i 都是约数,算两个 count += 2; } } } return count; }
int main() { int n; cin >> n; vector numbers(n); for (int i = 0; i < n; ++i) { cin >> numbers[i]; } // 先将第一个数作为初始的最大公约数 long long commonGCD = numbers[0]; // 遍历数组,计算所有数的最大公约数 for (int i = 1; i < n; ++i) { commonGCD = gcd(commonGCD, numbers[i]); } // 计算最大公约数的约数个数 int divisorCount = countDivisors(commonGCD); cout << divisorCount << endl; return 0; }
#include #include using namespace std;
// 计算两个数的最大公约数,使用欧几里得算法 long long gcd(long long a, long long b) { return b == 0 ? a : gcd(b, a % b); }
// 计算一个数的约数个数 int countDivisors(long long num) { int count = 0; // 遍历从 1 到 num 的平方根 for (long long i = 1; i * i <= num; ++i) { if (num % i == 0) { // 如果 i 是 num 的约数 if (i * i == num) { // 若 i 是 num 的平方根,只算一个约数 ++count; } else { // 否则 i 和 num/i 都是约数,算两个 count += 2; } } } return count; }
int main() { int n; cin >> n; vector numbers(n); for (int i = 0; i < n; ++i) { cin >> numbers[i]; } // 先将第一个数作为初始的最大公约数 long long commonGCD = numbers[0]; // 遍历数组,计算所有数的最大公约数 for (int i = 1; i < n; ++i) { commonGCD = gcd(commonGCD, numbers[i]); } // 计算最大公约数的约数个数 int divisorCount = countDivisors(commonGCD); cout << divisorCount << endl; return 0; }
#include #include using namespace std;
// 计算两个数的最大公约数,使用欧几里得算法 long long gcd(long long a, long long b) { return b == 0 ? a : gcd(b, a % b); }
// 计算一个数的约数个数 int countDivisors(long long num) { int count = 0; // 遍历从 1 到 num 的平方根 for (long long i = 1; i * i <= num; ++i) { if (num % i == 0) { // 如果 i 是 num 的约数 if (i * i == num) { // 若 i 是 num 的平方根,只算一个约数 ++count; } else { // 否则 i 和 num/i 都是约数,算两个 count += 2; } } } return count; }
int main() { int n; cin >> n; vector numbers(n); for (int i = 0; i < n; ++i) { cin >> numbers[i]; } // 先将第一个数作为初始的最大公约数 long long commonGCD = numbers[0]; // 遍历数组,计算所有数的最大公约数 for (int i = 1; i < n; ++i) { commonGCD = gcd(commonGCD, numbers[i]); } // 计算最大公约数的约数个数 int divisorCount = countDivisors(commonGCD); cout << divisorCount << endl; return 0; }
#include #include using namespace std;
// 计算两个数的最大公约数,使用欧几里得算法 long long gcd(long long a, long long b) { return b == 0 ? a : gcd(b, a % b); }
// 计算一个数的约数个数 int countDivisors(long long num) { int count = 0; // 遍历从 1 到 num 的平方根 for (long long i = 1; i * i <= num; ++i) { if (num % i == 0) { // 如果 i 是 num 的约数 if (i * i == num) { // 若 i 是 num 的平方根,只算一个约数 ++count; } else { // 否则 i 和 num/i 都是约数,算两个 count += 2; } } } return count; }
int main() { int n; cin >> n; vector numbers(n); for (int i = 0; i < n; ++i) { cin >> numbers[i]; } // 先将第一个数作为初始的最大公约数 long long commonGCD = numbers[0]; // 遍历数组,计算所有数的最大公约数 for (int i = 1; i < n; ++i) { commonGCD = gcd(commonGCD, numbers[i]); } // 计算最大公约数的约数个数 int divisorCount = countDivisors(commonGCD); cout << divisorCount << endl; return 0; }
#include #include using namespace std;
// 计算两个数的最大公约数,使用欧几里得算法 long long gcd(long long a, long long b) { return b == 0 ? a : gcd(b, a % b); }
// 计算一个数的约数个数 int countDivisors(long long num) { int count = 0; // 遍历从 1 到 num 的平方根 for (long long i = 1; i * i <= num; ++i) { if (num % i == 0) { // 如果 i 是 num 的约数 if (i * i == num) { // 若 i 是 num 的平方根,只算一个约数 ++count; } else { // 否则 i 和 num/i 都是约数,算两个 count += 2; } } } return count; }
int main() { int n; cin >> n; vector numbers(n); for (int i = 0; i < n; ++i) { cin >> numbers[i]; } // 先将第一个数作为初始的最大公约数 long long commonGCD = numbers[0]; // 遍历数组,计算所有数的最大公约数 for (int i = 1; i < n; ++i) { commonGCD = gcd(commonGCD, numbers[i]); } // 计算最大公约数的约数个数 int divisorCount = countDivisors(commonGCD); cout << divisorCount << endl; return 0; }
#include #include using namespace std;
// 计算两个数的最大公约数,使用欧几里得算法 long long gcd(long long a, long long b) { return b == 0 ? a : gcd(b, a % b); }
// 计算一个数的约数个数 int countDivisors(long long num) { int count = 0; // 遍历从 1 到 num 的平方根 for (long long i = 1; i * i <= num; ++i) { if (num % i == 0) { // 如果 i 是 num 的约数 if (i * i == num) { // 若 i 是 num 的平方根,只算一个约数 ++count; } else { // 否则 i 和 num/i 都是约数,算两个 count += 2; } } } return count; }
int main() { int n; cin >> n; vector numbers(n); for (int i = 0; i < n; ++i) { cin >> numbers[i]; } // 先将第一个数作为初始的最大公约数 long long commonGCD = numbers[0]; // 遍历数组,计算所有数的最大公约数 for (int i = 1; i < n; ++i) { commonGCD = gcd(commonGCD, numbers[i]); } // 计算最大公约数的约数个数 int divisorCount = countDivisors(commonGCD); cout << divisorCount << endl; return 0; }
#include #include using namespace std;
// 计算两个数的最大公约数,使用欧几里得算法 long long gcd(long long a, long long b) { return b == 0 ? a : gcd(b, a % b); }
// 计算一个数的约数个数 int countDivisors(long long num) { int count = 0; // 遍历从 1 到 num 的平方根 for (long long i = 1; i * i <= num; ++i) { if (num % i == 0) { // 如果 i 是 num 的约数 if (i * i == num) { // 若 i 是 num 的平方根,只算一个约数 ++count; } else { // 否则 i 和 num/i 都是约数,算两个 count += 2; } } } return count; }
int main() { int n; cin >> n; vector numbers(n); for (int i = 0; i < n; ++i) { cin >> numbers[i]; } // 先将第一个数作为初始的最大公约数 long long commonGCD = numbers[0]; // 遍历数组,计算所有数的最大公约数 for (int i = 1; i < n; ++i) { commonGCD = gcd(commonGCD, numbers[i]); } // 计算最大公约数的约数个数 int divisorCount = countDivisors(commonGCD); cout << divisorCount << endl; return 0; }
#include #include using namespace std;
// 计算两个数的最大公约数,使用欧几里得算法 long long gcd(long long a, long long b) { return b == 0 ? a : gcd(b, a % b); }
// 计算一个数的约数个数 int countDivisors(long long num) { int count = 0; // 遍历从 1 到 num 的平方根 for (long long i = 1; i * i <= num; ++i) { if (num % i == 0) { // 如果 i 是 num 的约数 if (i * i == num) { // 若 i 是 num 的平方根,只算一个约数 ++count; } else { // 否则 i 和 num/i 都是约数,算两个 count += 2; } } } return count; }
int main() { int n; cin >> n; vector numbers(n); for (int i = 0; i < n; ++i) { cin >> numbers[i]; } // 先将第一个数作为初始的最大公约数 long long commonGCD = numbers[0]; // 遍历数组,计算所有数的最大公约数 for (int i = 1; i < n; ++i) { commonGCD = gcd(commonGCD, numbers[i]); } // 计算最大公约数的约数个数 int divisorCount = countDivisors(commonGCD); cout << divisorCount << endl; return 0; }
#include #include using namespace std;
// 计算两个数的最大公约数,使用欧几里得算法 long long gcd(long long a, long long b) { return b == 0 ? a : gcd(b, a % b); }
// 计算一个数的约数个数 int countDivisors(long long num) { int count = 0; // 遍历从 1 到 num 的平方根 for (long long i = 1; i * i <= num; ++i) { if (num % i == 0) { // 如果 i 是 num 的约数 if (i * i == num) { // 若 i 是 num 的平方根,只算一个约数 ++count; } else { // 否则 i 和 num/i 都是约数,算两个 count += 2; } } } return count; }
int main() { int n; cin >> n; vector numbers(n); for (int i = 0; i < n; ++i) { cin >> numbers[i]; } // 先将第一个数作为初始的最大公约数 long long commonGCD = numbers[0]; // 遍历数组,计算所有数的最大公约数 for (int i = 1; i < n; ++i) { commonGCD = gcd(commonGCD, numbers[i]); } // 计算最大公约数的约数个数 int divisorCount = countDivisors(commonGCD); cout << divisorCount << endl; return 0; }
#include #include using namespace std;
// 计算两个数的最大公约数,使用欧几里得算法 long long gcd(long long a, long long b) { return b == 0 ? a : gcd(b, a % b); }
// 计算一个数的约数个数 int countDivisors(long long num) { int count = 0; // 遍历从 1 到 num 的平方根 for (long long i = 1; i * i <= num; ++i) { if (num % i == 0) { // 如果 i 是 num 的约数 if (i * i == num) { // 若 i 是 num 的平方根,只算一个约数 ++count; } else { // 否则 i 和 num/i 都是约数,算两个 count += 2; } } } return count; }
int main() { int n; cin >> n; vector numbers(n); for (int i = 0; i < n; ++i) { cin >> numbers[i]; } // 先将第一个数作为初始的最大公约数 long long commonGCD = numbers[0]; // 遍历数组,计算所有数的最大公约数 for (int i = 1; i < n; ++i) { commonGCD = gcd(commonGCD, numbers[i]); } // 计算最大公约数的约数个数 int divisorCount = countDivisors(commonGCD); cout << divisorCount << endl; return 0; }
#include #include using namespace std;
// 计算两个数的最大公约数,使用欧几里得算法 long long gcd(long long a, long long b) { return b == 0 ? a : gcd(b, a % b); }
// 计算一个数的约数个数 int countDivisors(long long num) { int count = 0; // 遍历从 1 到 num 的平方根 for (long long i = 1; i * i <= num; ++i) { if (num % i == 0) { // 如果 i 是 num 的约数 if (i * i == num) { // 若 i 是 num 的平方根,只算一个约数 ++count; } else { // 否则 i 和 num/i 都是约数,算两个 count += 2; } } } return count; }
int main() { int n; cin >> n; vector numbers(n); for (int i = 0; i < n; ++i) { cin >> numbers[i]; } // 先将第一个数作为初始的最大公约数 long long commonGCD = numbers[0]; // 遍历数组,计算所有数的最大公约数 for (int i = 1; i < n; ++i) { commonGCD = gcd(commonGCD, numbers[i]); } // 计算最大公约数的约数个数 int divisorCount = countDivisors(commonGCD); cout << divisorCount << endl; return 0; }
-
-
-2
- 1