শনিবার, ৩১ ডিসেম্বর, ২০১৬

UVA 10407 - Simple division

#include <stdio.h>
#include <math.h>
#include<bits/stdc++.h>
using namespace std;
main()
{
    while(1)
    {
        {
            long long  cnt=0,cnt1=0,diff,ans=0,i,a,ar[1010]={0},mn=10000000,i1,flag=0;
            while(cin>>a)
            {
                if(a==0&&cnt==0)
                {
                    flag=1;
                  break;
                }
                if(a==0&&cnt>0)
                    break;
                else
                {
                    ar[cnt]=a;
                    cnt++;
                }
            }
            if(flag==0)
            {
                for(i=1;i<cnt;i++)
                {
                    diff=ar[i]-ar[i-1];
                    ans=__gcd(ans,diff);
                }
                if(ans>=0)
                    cout<<ans<<endl;
                else
                    cout<<abs(ans)<<endl;
            }
            else
                break;
        }
    }
}

শুক্রবার, ৩০ ডিসেম্বর, ২০১৬

UVA 10311 - Goldbach and Euler

#include <stdio.h>
#include <math.h>
#include<bits/stdc++.h>
using namespace std;

#define SIZE 100000001

char  status[SIZE]={0};
void sieve()
{
 long int i,j;
 int sq = sqrt(SIZE);
 for(i=3;i<=sq;i+=2)
   {
       {
            for(j=i*i;j<=SIZE;j+=2*i)
                status[j]=1;
       }
   }
   status[1]=1;
   status[0]=1;
   for(i=1;i<=SIZE;i++)
   {
       if(i%2==0&&i!=2)
       {
           status[i]=1;
           continue;
       }
   }

}

int main()
{
 unsigned long long int n;
 sieve();
 while(scanf("%llu",&n)==1)
 {
     unsigned long long i1,k1,flag=0,m;
     if(n%2==1)
     {
         if(n==1)
            printf("%llu is not the sum of two primes!\n",n);
         else if(status[n-2]==1)
         {
             printf("%llu is not the sum of two primes!\n",n);
         }
         else
             printf("%llu is the sum of 2 and %llu.\n",n,n-2);
     }
     else
     {
         m=0,flag=0;
         for(i1=n/2;i1<n;i1++)
         {
             if(status[(n/2)-m]==0 && status[i1]==0 && ((n/2)-m)!=i1)
             {
                 flag=1;
                 printf("%llu is the sum of %llu and %llu.\n",n,n-i1,i1);
                 break;
             }
             m++;
         }
     if(flag==0)
            printf("%llu is not the sum of two primes!\n",n);
     }
 }

}

বৃহস্পতিবার, ২৯ ডিসেম্বর, ২০১৬

UVA 897 - Anagrammatic Primes

#include <stdio.h>
#include <math.h>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<vector>
#include<cmath>
#include<cstdlib>
#include<bits/stdc++.h>
using namespace std;

#define SIZE 40
long long int status[SIZE]={0},ar[50]={0};
 long long int i,j;
void sieve()
{
 int i,j;
 for(i=0;i<SIZE;i++) status[i]= 0;
 int sq = sqrt(SIZE);
 for(i=4;i<=SIZE;i+=2) status[i] = 1;
 for(i=3;i<=sq;i+=2)
   {
      if(status[i]==0)
       {
            for(j=2*i;j<=SIZE;j+=i)
             status[j]=1;
       }
   }
 status[1] = 1;
}
int main()
{
    sieve();
    long long n;
    while(cin>>n)
    {
        long long k1;
        if(n==0)
            break;
        else
        {
            if(status[n]==0)
            {
                 if(n==11 || n==23 || n==29)
                    {
                        cout<<"Given number is prime. But, NO perfect number is available." << endl;
                    }
                else
                {
                    k1=(pow(2,(n-1))+.00000000001)*((pow(2,n)+.00000000001)-1);
                    printf("Perfect: %lld!\n",k1);
                }
            }
            else
            {
                printf("Given number is NOT prime! NO perfect number is available.\n");
            }
        }
    }
}

বুধবার, ২৮ ডিসেম্বর, ২০১৬

UVA 897 - Anagrammatic Primes

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<vector>
#include<cmath>
#include<cstdlib>
#define N 10000001
using namespace std;

vector<long int>prime;

bool arr[N];
void sieve()
{
    long int k=sqrt(N);
    for(int i=3; i<=k; i+=2)
    {
        if(arr[i]==0)
        {
            for(long int j=i*i; j<N; j+=2*i)
            {
                arr[j]=1;
            }
        }
    }
    arr[1]=1;
    for(long int i=4; i<N; i+=2)
    {
        arr[i]=1;
    }

    prime.push_back(2);

    for(long int i=3; i<N; i+=2)
    {
        if(arr[i]==0)
        {
            prime.push_back(i);
        }
    }
}
int main()
{
    sieve();
    char str[10], *pEnd;
    long int num,limit,cnt,num1,loop,brk;
    while(gets(str))
    {
        long int len=strlen(str);
        if(str[0]=='0')
            break;
        if(len>=4)// 991 is the last Anagrammatic prime
        {
            printf("0\n");
            continue;
        }
        num=strtol(str,&pEnd,10);

        limit=1;
        for(long int j=1; j<=len; j++)
            limit*=10;
        //printf("   limit %ld\n",limit);

        brk=0;
        for(long int i=num+1; i<limit; i++)
        {
            if(arr[i]==0)
            {
                sprintf(str,"%ld",i);
                cnt=loop=0;

                sort(str,str+len);
                do
                {
                    num1=strtol(str,&pEnd,10);
                    if(arr[num1]==0)
                        cnt++;
                    loop++;
                }
                while(next_permutation(str,str+len));
                if(cnt==loop)
                {
                    brk++;
                    printf("%ld\n",i);
                    break;
                }
            }

        }
        if(brk==0)
            printf("0\n");
        memset(str,'\0',sizeof(str));
    }
    return 0;
}

UVA 10650 - Determinate Prime

#include <stdio.h>
#include <math.h>
#include<bits/stdc++.h>
using namespace std;

#define SIZE 33001
long long int status[SIZE],ar[10000]={0},k=0;;

void sieve()
{
 long long int i,j;
 for(i=0;i<SIZE;i++) status[i]= 0;
 int sq = sqrt(SIZE);
 for(i=4;i<=SIZE;i+=2) status[i] = 1;
 for(i=3;i<=sq;i+=2)
   {
      if(status[i]==0)
       {
            for(j=2*i;j<=SIZE;j+=i)
             status[j]=1;
       }
   }

 status[1] = 1;
 status[0] = 1;
 for(i=0;i<=SIZE;i++)
 {
     if(status[i]==0)
     {
         ar[k]=i;
         k++;
     }
 }
}

int main()
{
 long long int n,i2;
 map<long long,long long>mp;
 sieve();
 long long a,b;
 while(cin>>a>>b)
 {
     long long i1,flag=0,i2,k1=0,diff=0,diff1=0,cnt=0,visit[32000]={0};
     if(a>b)
        swap(a,b);
     if(a==0&&b==0)
     {
         break;
     }
     else
     {
         i2=0;
         for(i1=0;i1<k;i1=i2+1)
         {
             i2=i1;
             if(ar[i1]<a)
                continue;
             if(ar[i1]>b)
                break;
             else
             {
                 if(ar[i1+1]<=b)
                 {
                     diff=ar[i1+1]-ar[i1];
                     if(ar[i1]-ar[i1-1]==diff)
                     {
                         //i2=i1+1;
                         continue;
                     }
                     else
                     {
                         if(ar[i1+2]<=b)
                         {
                             if(diff==(ar[i1+2]-ar[i1+1]))
                                {
                                    if(ar[i1+3]>b)
                                    {
                                        if(diff==(ar[i1]-ar[i1-1]))
                                            continue;
                                        else if(diff==(ar[i1+3]-ar[i1+2]))
                                                continue;
                                        else
                                        {
                                            cnt++;
                                            cout<<ar[i1]<<" "<<ar[i1+1]<<" "<<ar[i1+2]<<endl;
                                        }
                                    }
                                    else
                                    {
                                        if(diff==(ar[i1+3]-ar[i1+2]))
                                        {
                                            cnt++;
                                           cout<<ar[i1]<<" "<<ar[i1+1]<<" "<<ar[i1+2]<<" "<<ar[i1+3]<<endl;
                                        }
                                        else if(diff==(ar[i1]-ar[i1-1]))
                                            continue;
                                         else
                                        {
                                            cnt++;
                                            cout<<ar[i1]<<" "<<ar[i1+1]<<" "<<ar[i1+2]<<endl;
                                        }
                                    }
                                }
                             else
                                continue;
                         }
                     }
                 }
                 else
                    break;
             }
         }
     }
 }
}

সোমবার, ২৬ ডিসেম্বর, ২০১৬

UVA 446 - Kibbles "n" Bits "n" Bits "n" Bits

#include<bits/stdc++.h>
using namespace std;
main()
{
    long long ts;
    cin>>ts;
    while(ts--)
    {
        string s,s1,s3;
        char c;
        long long i,k=0,k1=0,ar[100]={0},ar1[100]={0},sum=0,sum1=0,ans,pow1=0,k2=0;
        cin>>s>>c>>s1;
        for(i=s.size()-1;i>=0;i--)
        {
            if(s[i]>='0'&&s[i]<='9')
            {
                k=s[i]-48;
                sum=sum+k*(pow(16,(pow1))+.0000000000001);
            }
            else
            {
                k=s[i]-55;
                sum=sum+k*(pow(16,(pow1))+.0000000000001);
            }
            pow1++;
        }
        pow1=0;
        for(i=s1.size()-1;i>=0;i--)
        {
            if(s1[i]>='0'&&s1[i]<='9')
            {
                k=s1[i]-48;
                sum1=sum1+k*(pow(16,(pow1))+.0000000000001);
            }
            else
            {
                k=s1[i]-55;
                sum1=sum1+k*(pow(16,(pow1))+.0000000000001);
            }
            pow1++;
        }

        if(c=='+')
        {
            ans=sum+sum1;
        }
        else if(c=='-')
        {
            ans=sum-sum1;
        }
        while(sum!=0)
        {
            ar[k2]=sum%2;
            sum/=2;
            k2++;
        }
        while(sum1!=0)
        {
            ar1[k1]=sum1%2;
            sum1/=2;
            k1++;
        }
        for(i=0;i<(13-k2);i++)
        {
            cout<<0;
        }
        for(i=k2-1;i>=0;i--)
        {
            cout<<ar[i];
        }
        printf(" %c ",c);
        for(i=0;i<(13-k1);i++)
        {
            cout<<0;
        }
        for(i=k1-1;i>=0;i--)
        {
            cout<<ar1[i];
        }
        cout<<" = ";
        cout<<ans<<endl;
    }
}

UVA 343 - What Base Is This?

#include<bits/stdc++.h>
using namespace std;
main()
{
    string s1,s2;
    while(cin>>s1>>s2)
    {
        long long l1,l2,i1,i2,i,pow1=0,flag=0,flag1=0,k,sum1=0,sum2=0,f=0;
        l1=s1.size();
        l2=s2.size();
        for(i1=2;i1<=36;i1++)
        {
            for(i2=2;i2<=36;i2++)
            {
                pow1=0;
                flag=0,flag1=0;
                sum1=0,sum2=0;
                for(i=l1-1;i>=0;i--)
                {
                    if(s1[i]>='0'&&s1[i]<='9')
                    {
                        k=s1[i]-48;
                    }
                    else
                        k=s1[i]-55;
                        if(k>=i1)
                            flag=1;
                        sum1=sum1+k*(pow(i1,pow1++)+.000000000001);
                }
                pow1=0;
                for(i=l2-1;i>=0;i--)
                {
                    if(s2[i]>='0'&&s2[i]<='9')
                    {
                        k=s2[i]-48;
                    }
                    else
                        k=s2[i]-55;
                        if(k>=i2)
                            flag=1;
                        sum2=sum2+k*(pow(i2,pow1++)+.000000000001);
                }
                if(flag==1)
                    continue;
                if(sum1==sum2)
                {
                    flag1=1;

                    break;
                }
            }
            if(flag1==1)
            {
                break;
            }
        }
        if(sum1==sum2)
        {
            cout<<s1;
                    printf(" (base %lld) = ",i1);
                    cout<<s2;
                           printf(" (base %lld)\n",i2);
        }
        else
        {
        cout<<s1;
        printf(" is not equal to ");
        cout<<s2;
        printf(" in any base 2..36\n");
        }
    }
}

UVA 355 - The Bases Are Loaded

#include<bits/stdc++.h>
using namespace std;
main()
{
    long long n,m;
    string s;
    while(cin>>n>>m>>s)
    {
        long long i,k=0,sum=0,pow1=0,flag=0,k1=0,k2=0;
       string ar;
        if(s[0]=='0')
            printf("0 base %lld = 0 base %lld\n",n,m);
        else
        {
            pow1=0;
            long  l=s.size();
            for(i=l-1;i>=0;i--)
                {
                    if(s[i]>='0'&&s[i]<='9')
                    k=s[i]-48;
                    else
                    k=s[i]-55;
                    if(k>=n)
                        flag=1;
                    sum=sum+(k*(pow(n,pow1++)+.00000000000001));
                }
                k1=0;

                if(sum==0)
                    ar[0]=0;
                while(sum!=0)
                {
                    k2=sum%m;
                    if(k2>9)
                    {
                        ar[k1]=char(k2+55);
                    }
                    else
                         ar[k1]=char (k2+48);
                    sum/=m;
                    k1++;
                }
                if(flag==1)
               cout<<s<<" is an illegal base "<<n<<" number"<<endl;
                else
                {
                    cout<<s;
                    printf(" base %lld = ",n);
                    for(i=k1-1;i>=0;i--)
                    {
                        cout<<ar[i];
                    }
                    printf(" base %lld\n",m);
                }
        }
    }
}

রবিবার, ২৫ ডিসেম্বর, ২০১৬

UVA 12043 - Divisors

#include<bits/stdc++.h>
using namespace std;
#define SIZE 100010
long long i,j,div1[SIZE];
long long  ddd[SIZE];
void check()
{
    for(i=1;i<=100000;i++)
    {
        for(j=i;j<=100000;j+=i)
        {
            div1[j]+=i;
            ddd[j]++;
        }
    }
}
main()
{
  check();
    long ts;
    cin>>ts;
    while(ts--)
    {
        long long a,b,c,ans=0,ans1=0,i1;
        cin>>a>>b>>c;
        for(i1=a;i1<=b;i1++)
        {
            if(i1%c==0)
            {
                ans1+=ddd[i1];
                ans+=div1[i1];
            }
        }
        cout<<ans1<<" "<<ans<<endl;
    }
}

Topic wise problem(number theory)

Prime problem uva : 406,543,686,897,914,10852,10650,10490,10394,10311,10168
GCD/LCM Problems uva : 408,412,106,10407,11388,11417,11774,12068
Factorial problems uva :324,568,623,10220,10323,10338
Prime factor Problems uva :516,583,10392,11466 ,160,993,10139,10622,10680,10780,10791,11395,11889
Big Mod /Inverse mod problems uva : 10090,10104,10633,10637 ,374,10212,11029
Fibonacci Numbers Problems uva : 495,900,948,1258,10183,10334,10450,10497,10597,11000,11089,11161,11780
Base Number Conversion problems Uva : 290,343,355,389,446,10473,10551

Number theory codeforces link :
https://codeforces.com/problemset?order=BY_SOLVED_DESC&tags=number+theory

Number Theory : https://a2oj.com/category?ID=41

Sorting problem : https://a2oj.com/category?ID=95

Big Mod /Inverse mod : http://www2.seas.gwu.edu/~poorvi/Classes/CS124_2006/CS124_InversePractice.pdf
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&page=show_problem&problem=4664
https://www.codechef.com/tags/problems/inverse
https://www.codechef.com/tags/problems/modulo

বৃহস্পতিবার, ২২ ডিসেম্বর, ২০১৬

UVA-914 - Jumping Champion

#include <stdio.h>
#include <math.h>
#include<bits/stdc++.h>
using namespace std;

#define SIZE 1000001

long long ar[1000010]={0}, status[SIZE],k=0;
 vector<long int>prime;
void sieve()
{
 int i,j;
 for(i=0;i<SIZE;i++) status[i]= 0;
 int sq = sqrt(SIZE);
 status[1] = 1,status[0] = 1;

 for(i=3;i<=sq;i+=2)
   {
      if(status[i]==0)
       {
            for(j=2*i;j<=SIZE;j+=i)
             status[j]=1;
       }
   }
   for(i=2;i<=SIZE;i++)
   {
       if(i%2==0&&i!=2)
       {
           continue;
       }
       else
       {
           if(status[i]==0)
           {
               prime.push_back(i);
           }
       }
   }
   k=prime.size();
}

int main()
{

 sieve();
 long long ts;
 cin>>ts;
 while(ts--)
 {
      long long int n,m,ans,mx=0,cnt=0,i1,vs,differ[200]={0},k1=0,low=0,high=0,k2=0;
      cin>>n>>m;
      for(i1=0;i1<k;i1++)
      {
          if(prime[i1]>=n&&cnt==0)
          {
              low=i1;
              cnt++;
          }
          else if(prime[i1]<=m)
          {
              high=i1;
          }
      }
     if(cnt!=0)
      {
          for(i1=low+1;i1<=high;i1++)
          {
              k1=prime[i1]-prime [i1-1];
              differ[k1]++;
          }
          for(i1=0;i1<=120;i1++)
          {
              if(differ[i1]>differ[k2])
              {
                  k2=i1;
              }
          }
          sort(differ,differ+120);
          if(differ[118]==differ[119])
          {
              printf("No jumping champion\n");
          }
          else
            printf("The jumping champion is %lld\n",k2);
      }
    else
      {
          printf("No jumping champion\n");
      }
 }
}

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

UVA 12068 - Harmonic Mean

#include<bits/stdc++.h>
using namespace std;
long long gcd(long long a,long long b)
{
    if(b==0)
        return a;
    else return gcd(b,a%b);
}
main()
{
    long long n,cs=1;
    cin>>n;
    while(n--)
    {
        long long n1,ar[100010]={0},i,lcm=1;
        cin>>n1;
        for(i=0;i<n1;i++)
        {
            cin>>ar[i];
            lcm=lcm*ar[i];
        }
        long long sum=0;
        for(i=0;i<n1;i++)
        {
            sum=sum+(lcm/ar[i]);
        }
        long long upper=lcm*n1;
        long long  lower=sum,vag=gcd(upper,lower);
        upper=upper/vag;
        lower=lower/vag;
        printf("Case %lld: ",cs++);
        cout<<upper<<"/"<<lower<<endl;
    }
}

মঙ্গলবার, ১৩ ডিসেম্বর, ২০১৬

UVA 884 - Factorial Factors

#include<bits/stdc++.h>
using namespace std;
#define mx 1000002
long long visit[mx]={0},ans[mx]={0},ar[mx]={0};

long long seive(long long n1)
{
    long long i,j,i1;
   for(i=3;i*i<=n1;i+=2)
   {
       if(visit[i]==0)
       for(j=i*i;j<=n1;j+=(2*i))
       {
           visit[j]=1;
       }
   }
   ar[2]=1;
   ans[2]=1;
   for(i=3;i<=n1;i++)
   {
       if(i%2==0)
       {
           ar[i]=ar[i/2]+1;
           ans[i]=ans[i-1]+ar[i];
       }
       else if(visit[i]==0)
       {
           ar[i]=1;
           ans[i]=ans[i-1]+ar[i];
       }
       else
       {
           for(i1=3;i1<=sqrt(i);i1+=2)
           {
               if(i%i1==0)
               {
                  ar[i]=ar[i1]+ar[i/i1];
                  ans[i]=ans[i-1]+ar[i];
                  break;
               }
           }
       }
   }
}
main()
{
    long long n;
    seive(1000000);
    while(cin>>n)
    {
        cout<<ans[n]<<endl;
    }
}

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

Euler’s Totient Function (or Euler Phi)- (light oj problem-1007)

#include<stdio.h>
#define max 5000009
unsigned long long phi[max];
int main()
 {
  unsigned   long long i,j;
   for(i=2;i<max;i++)
    {
        if(phi[i]==0)
            {
                phi[i]=i-1;
                for(j=i*2;j<max;j=j+i)
                    {
                        if(phi[j]==0)
                        {
                            phi[j]=j;

                        }
                        phi[j]=phi[j]-(phi[j]/i);
                    }
            }
    }
   unsigned   long long s,d=0;
     for(s=2;s<max;s++)
      {
         phi[s]= phi[s]*phi[s];
         phi[s]=phi[s]+phi[s-1];
      }
     unsigned long long a,b,x,test,u;
      scanf("%llu",&test);
       for(u=1;u<=test;u++){
        scanf("%llu %llu",&a,&b);
          printf("Case %llu: %llu\n",u,phi[b]-phi[a-1]);
      }
   }

শুক্রবার, ৪ নভেম্বর, ২০১৬

How to find the number of digits in factorial of n of base b?

LightOJ 1045 – Digits of Factorial

Answer: 
  1. At first Precalculate the logarithms of number 1 to n and add them all in an array, say, sum[n].
    sum[n]=log(1)+log(2)+....+log(n).
  2. Now divide sum[n] by the log of b: log(b).
  3. result= sum/log(b).
  4. Add 1 to the result for final result.
  5. Ans= result+1;
  6. For any value of n you just need to divide sum[n] and you can get the result at O(1).
Solution:-

#include<bits/stdc++.h>
using namespace std;
long long i;
double dig[1000010];
main()
{
    long long n,cs=1;
    scanf("%lld",&n);
    for(i=1;i<=1000000;i++)
    {
        dig[i]=dig[i-1]+log(i);
    }
    while(n--)
    {
        long long  a,b,sum=0,res;
        long long ans;
        scanf("%lld%lld",&a,&b);
        res=(long long)(dig[a]/(dig[b]-dig[b-1]));
        ans=res+1;
        printf("Case %lld: %lld\n",cs++,ans);
    }
}

Find the minimum number of length n, such that it is simultaneously divisible by some numbers(2,3,5,7)

#include < bits / stdc++.h>
#include <iostream>
using namespace std;
main()
{
    long long n;
    while(cin>>n)
    {
        if(n==1||n==2)
            cout<<"-1"<<endl;
        else
        {
            if(n==3)
            {
                cout<<210<<endl;
            }
            else
            {
                string s;
                long long i,k,k1=0,l,k2,k3;
                s='1';
                for(i=0;i<n-1;i++)
                    {
                        s+='0';
                    }
                    l=s.size();
                for(i=0;i<l;i++)
                {
                    k=k1*10+(s[i]-48);
                    k1=k%210;
                }
                k2=210-k1;
                k3=l-1;
                char ch;
                while(k2!=0)
                {
                    ch=k2%10;
                    s[k3]=ch+48;
                    k2/=10;
                    k3--;
                }
                cout<<s<<endl;
            }
        }
    }

যেকোনো অংকের ক্ষুদ্রতম সংখ্যা যা ২,৩,৫,৭ দ্বারা বিভাজ্য- (just a technique)

যদি বলে ২,৩,৫,৭ দ্বারা বিভাজ্য হবে যেকোনো অংকের কোন ক্ষুদ্রতম সংখ্যা ও এমন কোন বৃহত্তম সংখ্যা আছে?
উদাহরনঃ ২,৩,৫,৭ দ্বারা বিভাজ্য ১ ও ২ অংকের ক্ষুদ্রতম সংখ্যা নাই
২,৩,৫,৭ দ্বারা বিভাজ্য ৩ অংকের ক্ষুদ্রতম সংখ্যা হবে ২১০
২,৩,৫,৭ দ্বারা বিভাজ্য ৪ অংকের ক্ষুদ্রতম সংখ্যা হবে ১০৫০
সমধান করার নিয়মঃ-
প্রথমে আমার বের করতে হবে ৪ অংকের সবচেয়ে ক্ষুদ্রতম সংখ্যা কি?
আমরা জানি ১০০০ এবং ৪ অংকের সবচেয়ে বৃহত্তম সংখ্যা ৯৯৯৯
এইবার বের করবো ২,৩,৫,৭ এর ল.সা.গু. কত? উত্তরঃ-২১০
ক্ষুদ্রতম সংখ্যা(১০০০) কে ২১০ দ্বারা ভাগ করলে ভাগশেষ কত থাকে? উত্তরঃ-১৬০
এইবার বের করবো এই ভাগশেষ লসাগু অপেক্ষা কত ছোট? উত্তরঃ-(২১০-১৬০)=৫০
এই সংখ্যা টাকেই ঐ ক্ষুদ্রতম সংখ্যার সাথে যোগ করলেই উত্তর পেয়ে যাবো
অতএব ১০০০+৫০=১০৫০ ই হল ৩ অংকের সেই ক্ষুদ্রতম সংখ্যা যা ২,৩,৫,৭ দ্বারা বিভাজ্য।
#ঠিক একইভাবে ৪ অংকের জন্যঃ-
১০০০০ হল ৫ অংকের ক্ষুদ্রতম সংখ্যা,ভাগশেষ =(১০০০০%২১০)=১৩০
লসাগু থেকে ভাগশেষ বিয়োগঃ-২১০-১৩০=৮০;
৪ অংকের ক্ষুদ্রতম সংখ্যা+(লসাগু-ভাগশেষ)=১০০০০+(২১০-১৩০)=১০০৮০
১০০০০+৮০=১০০৮০ এইটাই উত্তর


code link:-http://smollick.blogspot.com/2016/11/find-minimum-number-of-length-n-such_4.html

মঙ্গলবার, ২৫ অক্টোবর, ২০১৬

Find total number of Rectangles (including squares) in a N*N cheesboard

#include<bits/stdc++.h>
using namespace std;

main()
{
    long long n;
    cin>>n;
    while(n--)
    {
        long long a;
        cin>>a;
        a=(((a*(a+1))/2)*((a*(a+1))/2));
        cout<<a<<endl;
    }
}

Find total number of Rectangles (excluding squares) in a N*N cheesboard

#include<bits/stdc++.h>
using namespace std;

main()
{
    long long n;
    cin>>n;
    while(n--)
    {
        long long a;
        cin>>a;
        a=(((a*(a+1))/2)*((a*(a+1))/2))-((a*a+a)*(2*a+1))/6;
        cout<<a<<endl;
    }
}

find the maximum number of squares in (n*n) grid cheesboard

If there is n*n grid cheesboard
Now find the maximum number of squares possible????

Formula:-

((n*n + n)*(2*n+1))/6 or ((n*(n+1))*(2*n+1))/6

if(n==1) ans=1;
n==2 ans=5;
n==3 ans=14;
n==4 ans=30;

শুক্রবার, ৩০ সেপ্টেম্বর, ২০১৬

UVA 10810 - Ultra-QuickSort

#include<iostream>
#include<stdio.h>
#include<math.h>
#include<algorithm>
#include<stdlib.h>
using namespace std;

long long int arr[500010],swaps;
void marge(long long  l,long long  m ,long long  r)
{
    long long  i,j,k;
    long long n1=m-l+1;
    long long n2=r-m;
    long long L[n1],R[n2];
    for(i=0;i<n1;i++)
    {
        L[i]=arr[l+i];
    }
    for(j=0;j<n2;j++)
    {
        R[j]=arr[m+1+j];
    }
    i=0;j=0;k=l;
    while(i<n1 && j<n2)
    {
        if(L[i]<=R[j])
        {
            arr[k]=L[i];
            i++;
        }
        else
        {
            arr[k]=R[j];
            j++;
            swaps += n1 - i;
        }
        k++;
    }
    while(i<n1)
    {
        arr[k]=L[i];
        i++;
        k++;
    }
      while(j<n2)
    {
        arr[k]=R[j];
        j++;
        k++;
    }
}
void mergeSort(long long int l,long long  r)
{
    if(l<r)
    {
        long long  m=l+(r-l)/2;
        mergeSort(l, m);
        mergeSort(m+1, r);

        marge(l, m, r);

    }
}
main()
{
   long long  n,i;
   while(~scanf("%lld",&n))
   {
         swaps=0;
         if(n==0)
            break;
       for(i=0;i<n;i++)
       {
           scanf("%lld",&arr[i]);
       }
       mergeSort(0,n-1);
       cout<<swaps<<endl;
   }

}

বৃহস্পতিবার, ২২ সেপ্টেম্বর, ২০১৬

UVA 661 - Blowing Fuses

#include<bits/stdc++.h>
using namespace std;
main()
{
    long long a,b,c,cs=1;
    while(cin>>a>>b>>c)
    {
          long long a1,k,visit[100]={0},ans=0,mp[1000]={0},i,sum=0;
          if(a==0&&b==0&&c==0)
            break;
          else
          {
          printf("Sequence %lld\n",cs);
          for(i=1;i<=a;i++)
          {
                cin>>k;
                mp[i]=k;
          }
          for(i=1;i<=b;i++)
          {
                cin>>a1;
                if(visit[a1]==0)
                {
                      sum=sum+mp[a1];
                      visit[a1]=1;
                }
                else if(visit[a1]==1)
                {
                      sum-=mp[a1];
                      visit[a1]=0;
                }
                ans=max(ans,sum);
          }
          if(ans>c)
          {
                printf("Fuse was blown.\n");
          }
          else
          {
                printf("Fuse was not blown.\n");
printf("Maximal power consumption was %lld amperes.\n",ans);
          }
          cout<<endl;
          }
          cs++;
    }
}

বৃহস্পতিবার, ৮ সেপ্টেম্বর, ২০১৬

UVA 11661 - Burger Time?

#include<bits/stdc++.h>
using namespace std;
main()
{
      long n;
      while(cin>>n)
      {
            if(n==0)
                  break;
            else
            {
                  string s;
                  long long r=0,d=0,l,k,ans=0,ans1=0,mn=2000010,mn1=2000010,i,x=0,x1=0,z=0;
                  cin>>s;
                  l=s.size();
                  for(i=0;i<l;i++)
                  {
                        if(s[i]=='R')
                        {
                              r=1;
                              k=i;
                        }
                        else if(s[i]=='D')
                        {

                              if(r==1)
                              {
                              ans=i-k;
                              mn=min(ans,mn);
                              x=1;
                              r=0;
                              }
                        }
                        else if(s[i]=='Z')
                        {
                              z=1;
                              break;
                        }
                  }
                  if(z==0)
                  for(i=0;i<l;i++)
                  {
                        if(s[i]=='D')
                        {
                              d=1;
                              k=i;
                        }
                        else if(s[i]=='R')
                        {

                              if(d==1)
                              {
                              ans1=i-k;
                              x1=1;
                              d=0;
                              mn1=min(ans1,mn1);
                              }
                        }
                  }
                  if(z==1)
                  {
                        cout<<"0"<<endl;
                  }
                  else if(x==1&&x1==1)
                  {
                        cout<<min(mn,mn1)<<endl;
                  }
                  else if(x==0&&x1==0)
                  {
                        cout<<"0"<<endl;
                  }
                  else
                        cout<<min(mn,mn1)<<endl;
            }
      }
}

বৃহস্পতিবার, ১ সেপ্টেম্বর, ২০১৬

UVA 11466 - Largest Prime Divisor

#include<bits/stdc++.h>
using namespace std;
main()
 {
    long long n,ans,i;
    long long cnt;
    while (cin>>n)
      {
         if(n==0)
            break;
         else
          {
          if(n<0)
          n=n*-1;
          ans=-1;
          cnt=0;
        for (i=2;i*i<= n;i++)
            {
               while (n%i == 0)
                    {
                        n/=i;
                        ans=i;
                    }
               if (ans==i)
                    {
                         cnt++;
                    }
               if(n==1)
                   break;
           }


        if (n!=1 && ans!=-1)
            ans=n;
        else if(cnt==1)
            ans=-1;
        cout<<ans<<endl;
       }
      }
}

Factorization with prime Sieve

vector <int> prime; char sieve[1000009]; int N=1000009; void primeSieve ( ) { sieve[0] = sieve[1] = 1; prime.push_back(2); ...