#include<bits/stdc++.h>
using namespace std;
const int MAX = 100000001;
int arr[MAX];
vector<bool> vis(MAX, false);
void seive() {
for (int i = 4; i < MAX; i += 2) vis[i] = true;
for (int i = 3; i * i <MAX; i+=2) {
if (!vis[i]) {
for (int j = i * i; j <MAX; j += i) vis[j] = true;
}
}
arr[2] = 1;
for (int i = 3; i < MAX; i +=2) {
if (!vis[i]) {
arr[i + 1] = arr[i] = arr[i - 1] + 1;
}
else arr[i + 1] = arr[i] = arr[i - 1];
}
}
double calc(int n,int x) {
double c = (double)n / log(double(n));
double d= abs((double(x)) - c);
double ans = (double)d / (double)x;
return ans*100;
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int test;
test = 1;
// cin >> test;
seive();
while (1) {
int n;
cin >> n;
if (n == 0) break;
int a = arr[n];
printf("%0.1lf\n", calc(n, a));
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKY29uc3QgaW50IE1BWCA9IDEwMDAwMDAwMTsKaW50IGFycltNQVhdOwp2ZWN0b3I8Ym9vbD4gdmlzKE1BWCwgZmFsc2UpOwoKdm9pZCBzZWl2ZSgpIHsKICAgIGZvciAoaW50IGkgPSA0OyBpIDwgTUFYOyBpICs9IDIpIHZpc1tpXSA9IHRydWU7CiAgICBmb3IgKGludCBpID0gMzsgaSAqIGkgPE1BWDsgaSs9MikgewogICAgICAgIGlmICghdmlzW2ldKSB7CiAgICAgICAgICAgIGZvciAoaW50IGogPSBpICogaTsgaiA8TUFYOyBqICs9IGkpIHZpc1tqXSA9IHRydWU7CiAgICAgICAgfQogICAgfQogICAgYXJyWzJdID0gMTsKICAgCiAgICBmb3IgKGludCBpID0gMzsgaSA8IE1BWDsgaSArPTIpIHsKICAgICAgICBpZiAoIXZpc1tpXSkgewogICAgICAgICAgICBhcnJbaSArIDFdID0gYXJyW2ldID0gYXJyW2kgLSAxXSArIDE7CiAgICAgICAgfQogICAgICAgIGVsc2UgYXJyW2kgKyAxXSA9IGFycltpXSA9IGFycltpIC0gMV07CiAgIH0KCn0KZG91YmxlIGNhbGMoaW50IG4saW50IHgpIHsKICAgIGRvdWJsZSBjID0gKGRvdWJsZSluIC8gbG9nKGRvdWJsZShuKSk7CiAgICBkb3VibGUgZD0gYWJzKChkb3VibGUoeCkpIC0gYyk7CiAgICBkb3VibGUgYW5zID0gKGRvdWJsZSlkIC8gKGRvdWJsZSl4OwogICAgCiAgICByZXR1cm4gYW5zKjEwMDsKfQoKCgppbnQgbWFpbigpIHsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZShOVUxMKTsKICAgIGNvdXQudGllKE5VTEwpOwogICAgaW50IHRlc3Q7CiAgICB0ZXN0ID0gMTsKICAgLy8gY2luID4+IHRlc3Q7CiAgICBzZWl2ZSgpOwogICAgd2hpbGUgKDEpIHsKICAgICAgICBpbnQgbjsKICAgICAgICBjaW4gPj4gbjsKICAgIAogICAgICAgIGlmIChuID09IDApIGJyZWFrOwogICAgICAgIGludCBhID0gYXJyW25dOwogICAgICAgIAogICAgICAgCiAgICAgICAgcHJpbnRmKCIlMC4xbGZcbiIsIGNhbGMobiwgYSkpOwogICAgICAgIAogICAgfQoKCgoKCgoKICAgIAp9