# Need help in CHEFWM problem (starters 21)

need help and opinion on why my code is wrong for CHEFWM problem in starters 21,
link to question : Contest Page | CodeChef

#include <bits/stdc++.h>
using namespace std;
#define ll long long int
#define MAX 100001
vector prime;

void makeprime(){
vector isprime(MAX,true);
isprime[0]=isprime[1]=0;
for(ll i=2;i<MAX;i++){
if(isprime[i] == 1){
for(ll j=i*i;j<MAX;j+=i) isprime[j]=0;
}
}
for(ll i=0;i<MAX;i++){
if(isprime[i]) prime.push_back(i);
}
}

int main() {
makeprime();

``````ll t;
cin>>t;

while(t--){
ll n,m;
cin>>n>>m;

/* if(n==1){
cout<<"1\n";
continue;
}*/
if(m==1){
cout<<"0\n";
continue;
}

ll ans=0;

for(auto &it:prime){
if(it>m) break;
if((m%it) == 0){
ans++;

}
}
if(ans!=0){
while((n%ans) != 0) ans--;
}

cout<<ans<<"\n";

}
return 0;
``````

}

Prime numbers which are greater than 100001 are not included in your prime vector that’s why you got WA.
Approach – you only have to count the distinct prime factors
can refer this solution (Solution: 55950404 | CodeChef)