int n, p; boolcheck(int x){ for (int i = 2; i <= p && 1ll*i * i <= x; i++) { if (x % i == 0) returnfalse; } returntrue; } voidsolve(){ cin >> p >> n; if (n == p) { cout << -1 << endl; return; } for (int i = n; i >= max(p+1,n-2000); i--) { if (check(i)) { cout << i << endl; return; } } cout << -1 << endl; }
ll k, d, t; boolcheck(double x){ ll m = d - k % d; ll mm = k + m; ll cnt = x / mm; double left = x - cnt*mm; double ans = cnt * m * 0.5 + cnt * k; if (left - k >= eps) ans += k + (left-k)*0.5; else ans += left; return ans >= t; } voidsolve(){ cin >> k >> d >> t; if (k % d == 0) { cout << t << endl; return; } double l = t, r = 2*t; for (int i = 0; i <= 1000; i++) { double mid = (l + r) * 0.5; if (check(mid)) r = mid; else l = mid; } printf("%0.9lf\n", l); }