# Even Numbers
## Idea
We want to print all positive even numbers less than or equal to $n$ in descending order.
If we only want to print all positive integers less than or equal to $n$ in descending order, we can use a for loop as follows.
```
for(int i = n; i > 0; i--) {
cout << i << " ";
}
```
Note how we modify the initialization, the condition, and the increment to achieve this. To print all even numbers, we can check if $i$ is even before printing using the ```%``` operator.
```
if(i % 2 == 0) {
// i is even!
}
```
However, it is faster and easier (in my opinion) to decrement by $2$ in the for loop, removing the need for the if statement.
```
for(int i = n; i > 0; i -= 2) {
cout << i << " ";
}
```
The issue with this is that it doesn't work when $n$ is odd. So if we set the initialization to be $n - n \bmod 2$, we can ensure that we start at the largest positive even number less than or equal to $n$. This works because if $n$ is even, $n - n \bmod 2 = n$, and if $n$ is odd, $n - n\bmod 2 = n - 1$, which is where we want to start.
## Code
```
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int MOD = 1E9 + 7;
const int INF = 1E9; const ll INFLL = 1E18;
int n;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(0);
cin >> n;
for(int i = n - (n % 2); i > 0; i -= 2) {
cout << i << " ";
}
cout << "\n";
}
```