About Me

About Me : I have been working as a Software Engineer for various international companies for four years.Currently, I am working as a full stack Javascript developer in Petronas(Malaysia).

Skills

Skills • Javascript •Typescript •Python •C •Java •ReactJs • Redux • VueJs • NestJs • React Testing Library • Django• PostgreSQL • MySQL • NodeJs • Git • Docker • Jira • Visual Studio Code • Slack

সোমবার, ৩০ নভেম্বর, ২০১৫

Spoj Solution :NFACTOR - N-Factorful

#include <bits/stdc++.h>
#define pb push_back
#define Max 1000002
#define lim 1000006
using namespace std;
typedef long long ll;
bool mark[Max];
vector<int>prime,fc;
void sieve()
{
    for(int i=3; i<=sqrt(Max); i+=2)
    {
        if(!mark[i]) for(int j=i*i; j<Max; j+=i) mark[j]=true;
    }
    prime.pb(2);
    for(int i=3; i<Max; i+=2) if(!mark[i]) prime.pb(i);
}
int fac[1000001];
vector<int>vc[1000001];
vector<int>:: iterator l,h;

int ttt(int n)
{
    int cnt=0;
    fc.clear();
    for(int i=0; prime[i]*prime[i]<=n; i++)
    {
        if(n%prime[i]==0)
        {
            while(n%prime[i]==0)
            {
                n/=prime[i];
            }
            fc.pb(prime[i]);
        }
    }
    if(n>1)
    {
        fc.pb(n);
    }
    cnt = fc.size();
    return cnt;
}

int main()
{
    //   freopen("input.txt","r",stdin);
    sieve();
   // cout<<prime.size()<<endl;
    for(int i=2; i<(Max); i++)
    {
        fac[i]=ttt(i);
    }

    for(int i=2; i<1000003; i++)
    {
        int x=fac[i];
        if(x==0) x=1;
        if(x<11) vc[x].pb(i);
    }
    // cout<<vc[1].size()<<endl;
    // cout<<vc[2].size()<<endl;
    vc[1].pb(0);
    int test;
    scanf("%d",&test);
    while(test--)
    {
        int a,b,n,c=0;
        scanf("%d %d %d",&a,&b,&n);
        if(a>b)swap(a,b);

        if(n==0)
        {
            if(a==1) puts("1");
            else puts("0");
            continue;
        }
        if(vc[n].size()==0)
        {
            puts("0");
            continue;
        }
        l=lower_bound(vc[n].begin(),vc[n].end(),a);
        h=upper_bound(vc[n].begin(),vc[n].end(),b);
        // cout<<*l<<" "<<*h<<endl;
        printf("%d\n",h-l);

    }

    return 0;
}

রবিবার, ২৯ নভেম্বর, ২০১৫

SPOJ : BISHOPS - Bishops


import java.math.BigInteger;
import java.util.Scanner;
import java.util.*;

public class JavaApplication9{

    public static void main(String[] args) {  
       BigInteger a,b,c,d;
       Scanner input=new Scanner(System.in);
       BigInteger x=BigInteger.ONE;
       while(input.hasNext())
       {
           a=input.nextBigInteger();
           if((a.compareTo(x))==0){
         
               System.out.println("1");
                continue;
           }
           c=a.add(a.subtract(BigInteger.valueOf(2)));
           System.out.println(c);
       }
    }

}

বুধবার, ২৫ নভেম্বর, ২০১৫

spoj solution: DIV - Divisors

#include <bits/stdc++.h>
#define pb push_back
#define Max 1000009
#define lim 1000006
using namespace std;
typedef  long long ll;
vector<int>prime;
bool mark[Max];
void sieve()
{
    for(int i=3; i<=sqrt(Max); i+=2)
    {
        if(!mark[i]) for(int j=i*i; j<Max; j+=i) mark[j]=true;
    }
    prime.pb(2);
    for(int i=3; i<=Max; i+=2) if(!mark[i]) prime.pb(i);
}

int ary[1000006];
bool chk[Max];
int main()
{


    sieve();
    for(int i=1; i<=1000001; i++)
    {
        for(int j=i; j<=1000001; j+=i) ary[j]++;
    }
    //  printf("%d",ary[100]);
    map<int,int>mp;
    int c=0;
    for(int i=1; i<=1000001; i++)
    {
        int d=ary[i];
        if(!chk[d])
        {
            int  sum=1;
            mp.clear();
            for(int j=0; prime[j]*prime[j]<=d; j++)
            {
                if(d%prime[j]==0)
                {
                    sum*=prime[j];
                    mp[prime[j]]++;
                    while(d%prime[j]==0) d/=prime[j];
                }
            }
            if(d!=1) sum*=d;
            if(d!=1) mp[d]++;
            if(mp.size()==2&&sum==ary[i])
            {
                c++;
                chk[ary[i]]=true;
                if(c%9==0)  printf("%d\n",i);

            }
        }
        else
        {
            c++;
            //chk[ary[i]]=true;
            if(c%9==0)  printf("%d\n",i);

        }
    }



    return 0;
}



মঙ্গলবার, ১৭ নভেম্বর, ২০১৫

SPOJ Solution :DIVFACT - Divisors of factorial

#include <bits/stdc++.h>
#define pb push_back
#define MAX 1000006
#define lim 1000006
using namespace std;
typedef long long ll;
bitset<MAX>mark;
vector<int>prime;
void sieve()
{
    for(int i=3; i<sqrt(MAX); i+=2)
    {
        if(mark[i]==0) for(int j=i*i; j<MAX; j+=i) mark[j]=1;
    }
    prime.pb(2);
    for(int i=3; i<MAX; i+=2) if(mark[i]==0) prime.pb(i);
}
ll divisors_of_factorial(int n)
{
    ll res=1;
    for(int i=0; prime[i]<=n; i++)
    {
        int num=n;
        ll s=0;
        while(num)
        {
            s+=num/prime[i];
            num/=prime[i];
        }
        res=(res*(s+1))%1000000007;
    }
    return  res;
}
int main()
{
    //  freopen("input.txt","r",stdin);
    sieve();
    int test;
    scanf("%d",&test);
    while(test--)
    {
        int n;
        scanf("%d",&n) ;
        printf("%lld\n",divisors_of_factorial(n));

    }

    return 0;
}

Spoj Solution :PTIME - Prime Time

#include <bits/stdc++.h>
#define pb push_back
#define MAX 1000006
#define lim 1000006
using namespace std;
typedef long long ll;
bool mark[MAX];
vector<int>prime;
void sieve()
{
    for(int i=3; i<sqrt(MAX); i+=2)
    {
        if(!mark[i]) for(int j=i*i; j<MAX; j+=i) mark[j]=true;
    }
    prime.pb(2);
    for(int i=3; i<MAX; i+=2) if(!mark[i]) prime.pb(i);
}

int main()
{
    //  freopen("input.txt","r",stdin);
    sieve();
    int n;
    while(~scanf("%d",&n))
    {
        bool flag=true;
        for(int i=0; prime[i]<=n; i++)
        {
            int num=n;
            int sum=0;
            while(num)
            {
                sum+=num/prime[i];
                num/=prime[i];
            }
            if(flag)
            {
                flag=false;
                printf("%d^%d",prime[i],sum);
            }
            else printf(" * %d^%d",prime[i],sum);

        }
        puts("");
    }




    return 0;
}

রবিবার, ১৫ নভেম্বর, ২০১৫

Spoj Solution:CUBEFR - Cube Free Numbers

#include <bits/stdc++.h>
#define pb push_back
#define MAX 1000006
#define lim 1000006
using namespace std;
typedef long long ll;

vector<int>prime;
bool mark[MAX];
void sieve()
{
    for(int i=3; i<=sqrt(MAX); i+=2)
    {
        if(!mark[i]) for(int j=i*i; j<MAX; j+=i) mark[j]=true;
    }
    prime.pb(2);
    for(int i=3; i<MAX; i+=2) if(!mark[i]) prime.pb(i);
}
bool chk[lim];
int y[lim];
void cube_sieve()
{
    for(int i=0; prime[i]*prime[i]*prime[i]<lim; i++)
    {
        int n=prime[i]*prime[i]*prime[i];
        for(int j=1; n*j<lim; j++) chk[n*j]=true;

    }
    for(int i=1,k=1; i<lim; i++) if(!chk[i]) y[i]=k++;

}
int main()
{
    // freopen("input.txt","r",stdin);

    sieve();
    cube_sieve();
    int test;
    scanf("%d",&test);
    for(int cas=1; cas<=test; cas++)
    {
        int n;
        scanf("%d",&n);
        printf("Case %d: ",cas);
        if(chk[n]) puts("Not Cube Free");
        else printf("%d\n",y[n]);

    }


    return 0;
}

বৃহস্পতিবার, ১২ নভেম্বর, ২০১৫

Spoj Solution :AMR11E - Distinct Primes

#include <bits/stdc++.h>
#define MAX 10000
using namespace std;
bool mark[MAX];
vector<int>prime;
void seive()
{
    for(int i=3; i<=sqrt(MAX); i+=2)
    {
        if(!mark[i]) for(int j=i*i; j<MAX; j+=i) mark[j]=true;
    }
    prime.push_back(2);
    for(int i=3; i<MAX; i+=2) if(!mark[i]) prime.push_back(i);
}
vector<int>lucky;
void factor()
{
    for(int i=10;; i++)
    {
        int n=i;
        int c=0;
        for(int j=0; prime[j]*prime[j]<n; j++)
        {
            if(n%prime[j]==0)
            {
                c++;
                while(n%prime[j]==0)
                {
                    n/=prime[j];
                }
            }
        }
        if(n!=1)c++;
        if(c>=3) lucky.push_back(i);
        if(lucky.size()==1001) break;

    }

}


int main()
{
    //  freopen("input.txt","r",stdin);
    seive();
    factor();
    int test;
    scanf("%d",&test);
    while(test--)
    {
        int n;
        scanf("%d",&n);
        printf("%d\n",lucky[n-1]);
    }

    return 0;
}