Вообще-то это уже в двоичной системе. 0 и 1 - Двоичная система.
//PascalABC.NET
//Версия 3.3, сборка 1611
begin
write(ReadSeqIntegerWhile(x->x<>0).Where(x->x.IsEven).Count());
end.
Все можно вводить
.....................
#include <iostream>
using namespace std;
int main(){
cout << "Enter n: ";
int n;
cin >> n;
double p = 1;
for(int i = 2; i<n; i++){
p *= ((double)i)/(i+1.0);
}
cout << ''Result is: " << p << endl;
}
Как-то так, программу не компилировал, могут быть незначительные синтаксические ошибки, но основной алгоритм такой.