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;
void add(long long &odd, long long &even, long long val) {
val % 2 == 0 ? even += val : odd += val;
}
int main()
{
long long n;
cin >> n;
long long odd = 0, even = 0;
for (long long i = 1; i * i <= n; i++) {
if (n % i == 0) {
add(odd, even, i);
if (n / i != i) {
add(odd, even, n / i);
}
}
}
cout << odd << '\n' << even;
return 0;
}
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;
int main() {
long long n, se = 0, so;
cin >> n;
for (long long i = 1; i <= sqrt(n); i++)
if (n % i == 0)
if (n / i == i)
if (i % 2 == 0) se += i;
else so += i;
else {
if (i % 2 == 0) se += i;
else so += i;
if ((n / i) % 2 == 0) se += n / i;
else so += n / i;
}
cout << so << endl << se;
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
2
242
1
trên hàm thì long long &add cái & để lmj ạ
2707
41698
2038
& là tham chiếu nha bạn
2707
41698
2038
Nghĩa là trong hàm void khi mình thay đổi giá trị của biến odd thì biến odd tương ứng trong hàm main cũng sẽ thay đổi i chang vậy
2707
41698
2038
https://codelearn.io/sharing/tham-chieu-va-tham-tri-trong-cpp Bạn đọc phần tham chiếu nhé
2
242
1
ok cảm ơn bạn
2707
41698
2038
Không có gì nhé