Đăng nhập để hỏi chi tiết


Tìm số có nhiều ước dương nhất trong mảng 1 chiều c++
Hãy luôn nhớ cảm ơn và vote 5*
nếu câu trả lời hữu ích nhé!
#include <bits/stdc++.h>
using namespace std;
const int N=1e6+4;
int dem_uoc(int n){
int dem = 0;
for(int i=1;i<=n;i++){
if(n%i==0){
dem++;
}
}
return dem;
}
int n, a[N];
int main(){
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
}
int uoc_max=0, uoc_toida=0;
for(int i=0;i<n;i++){
int uoc=dem_uoc(a[i]);
if(uoc>uoc_max){
uoc_max=uoc;
uoc_toida=a[i];
}
}
cout<<uoc_max<<endl;
}
Hãy giúp mọi người biết câu trả lời này thế nào?
#include <bits/stdc++.h>
using namespace std;
const int N = 1e6 + 5;
int cnt[N];
void sieve() {
for (int i = 1; i < N; ++i) {
for (int j = i; j < N; j += i) {
++cnt[j];
}
}
}
int trau(const vector<int>& a) {
int max = 0;
int n = a[0];
for (int num : a) {
int d = cnt[num];
if (d > max) {
max = d;
n = num;
}
}
return n;
}
int main() {
sieve();
vector<int> a = {10, 24, 18, 30, 16, 12};
int res = trau(a);
cout << res << endl;
return 0;
}Hãy giúp mọi người biết câu trả lời này thế nào?
Bảng tin