Prime Subtractorization Aayush Dhankecha Aayush Dhankecha Source Code
Prime Subtractorization Aayush Dhankecha Aayush Dhankecha Source Code
h>
using namespace std;
#define ll long long
#pragma GCC optimize("O3,unroll-loops")
#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
#pragma GCC optimize("Ofast")
#define endl '\n'
#define MOD 1000000007
#define all(v) (v).begin(),(v).end()
#ifndef ONLINE_JUDGE
#include "dbg.hpp"
#else
#define debug(...) 18
#endif
vector<int> pr = Sieve(10000001);
vector<int> ans(10000005,0);
void solve()
{
int n; cin>>n;
if(n<=3){
cout<<0<<endl; return;
}
auto it=upper_bound(all(pr), n);
it--;
cout<<ans[(*it)]<<endl;
}
int main()
{
#ifndef ONLINE_JUDGE
freopen("prime_subtractorization_input.txt","r",stdin);
freopen("output.txt","w",stdout);
#endif
ans[2]=ans[3]=1;
for(int i=0; i<(int)pr.size(); i++){
if(pr[i]<=3) continue;
if(pr[i]==5){
ans[pr[i]]=2; continue;
}
int dif=pr[i]-pr[i-1];
if(ans[dif]>0) ans[pr[i]]=ans[pr[i-1]]+1;
else ans[pr[i]]=ans[pr[i-1]];
}
Gili_gili_chhu
int t = 1;
cin >> t;
int i = 1;
while (i <= t){
cout << "Case #" << i << ": ";
solve();
i++;
}
//cout << "\n\n"<<"Time elapsed: " << 1.0 * clock() / CLOCKS_PER_SEC << "
seconds.\n";
return 0;
}