UVA Problem 10487(Closest Sum) Solution

UVA Problem 10487(Closest Sum) Solution

#include <stdio.h>

int main()

{

  int n, i, q, c, sz, idx, idx2, t1, t2, elteres, ce = 0;

  while(1)

  {

    scanf("%d",&n);

    if(!n) break;

    printf("Case %d:\n",++ce);

    int set[n], i = 0, q = 0;

    sz = n;

    while(n--)

    {

      scanf("%d",&set[i++]);

    }

    scanf("%d",&q);

    while(q--)

    {

      scanf("%d",&c);

     

      elteres = 2147483647;

      for(idx = 0; idx < sz; idx++)

      {

        for(idx2 = idx + 1; idx2 < sz; idx2++)

        {

          if(  abs((set[idx] + set[idx2]) - c) < elteres  )

          {

            elteres = abs((set[idx] + set[idx2]) - c);

            t1 = set[idx];

            t2 = set[idx2];

          }

        }

      }

      printf("Closest sum to %d is %d.\n",c,t1+t2);

    }

  }

  return 0;

}

 

UVA Problem 10487(Closest Sum) Solution

UVA Problem 10490 ( Mr. Azad and his Son) Solution

#include<iostream>

#include<cstdio>

#include<cmath>

using namespace std;



int main()

{

    int n;

    int prime[] = {2,3,5,7,11,13,17,19,23,29,31};

    int sum,i,j,count;

    while(scanf("%d",&n)==1)

    {

        if(n==0)

            break;

        count =0;

        for(i=0; i<11; i++)

        {

            if(n==prime[i])

                count =1;

        }

        if(count==1)

        {

            if(n==11 || n==23 || n==29)

            {

                cout<<"Given number is prime. But, NO perfect number is available." << endl;

            }

            else

            {

                sum = pow(2,n-1) * (pow (2,n)-1);

                cout << "Perfect: " << sum <<'!'<<endl;

            }

        }

        else

        {

            cout << "Given number is NOT prime! NO perfect number is available."<<endl;

        }

    }

return 0;

}

 

UVA Problem 10487(Closest Sum) Solution

UVA Problem 10591 Solution

#include<bits/stdc++.h>

using namespace std;

int main()

{

int i,j,k,d,sum,num,tc,n,ans,digit;

while(cin>>tc)

{

for(k=1;k<=tc;k++)

{

cin>>n;   

num=n,ans=0;

while(n>9)

{



    while(n!=0)

{

    digit=n%10;

    n/=10;

    ans+=digit*digit;

   

}

n=ans;

ans=0;

}

while(n<9)

{

if(n<=9){

      ans=n;

      break;

      }   

}



if(ans==1 || ans==7)

    printf("Case #%lld: %lld is a Happy number.\n",k,num);

else

    printf("Case #%lld: %lld is an Unhappy number.\n",k,num);

}

}

return 0;

}

 

UVA Problem 10487(Closest Sum) Solution

UVA Problem 10656 Solution

#include <bits/stdc++.h>

using namespace std;



int a[10000];



int main()

{

     int n,t,i,j;

    while(scanf("%d",&t)==1)

    {

        j=0;

        if(t==0)

        return 0;

        for(i=0;i<t;i++)

        {

            scanf("%d",&a[i]);

       

            if(a[i] > 0)

            {

                j++;

                a[n++]=a[i];

            }

        }

    for(i=0;i<n;i++)

    {

        if(j==1)

          printf(" ");

          j=1;

          printf("%d",a[i]);

    }

         if (j == 0)

            printf("0");

        printf("\n");

    }



    return 0;

}

 

UVA Problem 10487(Closest Sum) Solution

UVA Problem 10699 Solution

#include<bits/stdc++.h>

bool flag[1000005];

int List[1000005],primes[100000];

int listSize,cnt;  

using namespace std;





void sieve(int n)

{

   

cnt=0;

primes[cnt++] = 2;

for(int i=3; i<=n; i+=2)

{

if(flag[i] == 0)

{

primes[cnt++] = i;

if(i <= n/i)

{

for(int j=i*i; j<=n; j+=i*2)

flag[j] = 1;

}

}

}



return ;

}



void primeFactorize( int n )

 {

    listSize = 0;  

    

  

    for( int i = 0;i<cnt and primes[i]<=(int)sqrt(n);i++ )

    {

        if( n % primes[i] == 0 )

        {

        listSize++;

            while( n % primes[i] == 0 )

             {

                

                n /= primes[i];

               

                //List[listSize] = primes[i];

                

            }

           

        }

    }

   

    //if( n ==1 )

   

      //  break;

        //List[listSize] = n;

        //listSize++;

   

   

    return ;

}

int main()

{

    int n,N;

    sieve(1000005);

 while(cin>>n)

   {

       if(n==0) break;

       if(n==1)

       {

           cout<<"0"<<endl;

           continue;

       }

       N=n;

       primeFactorize(N);

       cout<<N<<" : "<<listSize+1<<endl;

   }

return 0;

}







 

UVA Problem 10487(Closest Sum) Solution

UVA Problem 10734 Solution

#include <stdio.h>

#include <string.h>

int main()

{

    char s1[500],s2[500],s1s[500],s2s[500];

    int t,i,j,k;

   

    scanf("%d ",&t);

    for(i=0;i<t;i++){

      gets(s1);

      gets(s2);

      if(strcmp(s1,s2)==0)printf("Case %d: Yes\n",i+1);

      else {

          k=0;

        for(j=0;j<strlen(s1);j++){

          if(s1[j]!=' '){

            s1s[k]=s1[j];

             k++;

          }

        }

      s1s[k]='\0';

      k=0;

      for(j=0;j<strlen(s2);j++){

        if(s2s[j]!=' '){

         s2s[k]=s2[j];

         k++;

        }



      }

      s2s[k]='\0';

      if(strcmp(s1s,s2s)==0)printf("Case %d: Output Format Error\n",i+1);

      else printf("Case %d: Wrong Answer\n",i+1);



      }





    }





    return 0;

}

 

UVA Problem 10487(Closest Sum) Solution

UVA Problem 10773 Solution

#include<bits/stdc++.h>



using namespace std;

int main(){

double d,v,u,t1,t2;

int t;

cin>>t;

for(int i=0;i<t;i++){

cin>>d>>v>>u;

if( u==0 || v==0 || v>=u ){

printf("Case %d: can't determine\n",i+1);

continue;

}

t1=d/u;

t2=d/sqrt(u*u-v*v);

printf("Case %d: %.3lf\n",i+1,(t2-t1));

}

}

 

UVA Problem 10487(Closest Sum) Solution

UVA Problem 10783 Solution

#include <stdio.h>



int main()



{

    int t,a,b,i,j=1,sum;

   

    scanf("%d",&t);

   

    while( t-- )

   

    {

        sum = 0;

        scanf("%d %d",&a,&b);

       

        for( i=a ; i<=b ; i++)

       

        {

            if(i%2==1)

           

            sum += i;

           

        }

   

    printf("Case %d: %d\n",j,sum);



    j++;

}

return 0;

}

 

UVA Problem 10487(Closest Sum) Solution

UVA Problem 10790 Solution

#include<bits/stdc++.h>

using namespace std;

int main()

{

    long long int  a,b,i=1;

   

        while(cin>>a>>b)

        {

            if(a==0 && b==0) break;

        if(a==0 || b==0)

        {

            printf("Case %lld: 0\n",i);

            continue ;

        }

        printf("Case %lld: %lld\n",i++,((a*b*(a-1)*(b-1))/4));

        }

   

    return 0;

}

 

UVA Problem 10487(Closest Sum) Solution

UVA Problem 10852 Solution

#include <stdio.h>

#include<iostream>

#include<math.h>

#define MAX 10001

using namespace std;

bool flag[MAX];

int primes[MAX];

int cnt;



void sieve(int n)

{

cnt=0;

primes[cnt++] = 2;

for(int i=3; i<=n; i+=2)

{

if(flag[i] == 0)

{

primes[cnt++] = i;

if(i <= n/i)

{

for(int j=i*i; j<=n; j+=i*2)

flag[j] = 1;

}

}

}

return ;

}

int main()

{

    int tc, n;

   

    sieve(MAX);

   

    scanf("%d",&tc);

    while ( tc-- )

    {

        scanf("%d",&n);

        int ans = primes[0];

        for (int i=0; i<cnt && primes[i]<=n; i++)

            if ( n % primes[i] > n % ans )

            printf("v=%d\tm=%d\n",n % primes[i],n % ans);

                ans = primes[i];

       /// printf("%d\n",ans);

    }

   

    return 0;

}

 

UVA Problem 10487(Closest Sum) Solution

UVA Problem 10880 Solution

#include <iostream>

#include <algorithm>

#include <set>

#include <cmath>

using namespace std;



int main(void) {

  int tc, c, r,t,q;

  set<int> v;

    set<int>::iterator it;

  cin >> tc;



  for (t = 0; t < tc; t++) {

    cin >> c >> r;



    v.clear();



    cout << "Case #" << t+1 << ":";



    if (c == r) {

      cout << " 0" << endl;

      continue;

    }



    q = c - r;



    for (int i = 1; i <= sqrt(q); i++) {

      if (q % i == 0) {

        if (i > r)

          v.insert(i);



        if (q / i > r)

          v.insert(q/i);

      }

    }



    for ( it = v.begin(); it != v.end(); it++)

      cout << " " << *it;

    cout << endl;

  }



  return 0;

}

 

UVA Problem 10487(Closest Sum) Solution

UVA Problem 10921 ( Find the Telephone) Solution

#include <bits/stdc++.h>

using namespace std;

int main()

{

    char s[200],c;

    int i,l,j;

    while(gets(s))

    {

        l=strlen(s);

        for(i=0;i<l;i++)

        {

            if(s[i]=='A' ||s[i]=='B' ||s[i]=='C' )

            printf("2");

            else if(s[i]=='D' ||s[i]=='E' ||s[i]=='F' )

            printf("3");

            else if(s[i]=='G'||s[i]=='H'||s[i]=='I')

        printf("4");

        else if(s[i]=='J'||s[i]=='K'||s[i]=='L')

        printf("5");

        else if(s[i]=='M'||s[i]=='N'||s[i]=='O')

        printf("6");

        else if(s[i]=='P'||s[i]=='Q'||s[i]=='R'||s[i]=='S')

        printf("7");

        else if(s[i]=='T'||s[i]=='U'||s[i]=='V')

        printf("8");

        else if(s[i]=='W'||s[i]=='X'||s[i]=='Y'||s[i]=='Z')

        printf("9");

        else

        printf("%c",s[i]);

        }

        printf("\n");

        }



return 0;

}

 

UVA Problem 10487(Closest Sum) Solution

UVA Problem 10922 (The 9s) Solution

#include <bits/stdc++.h>

using namespace std;

char in[1002];

int main()

{

    int j,i,count,sum,totat,digit,deg,l,q,d;

   

    bool flag;

   

    while(1)

    {

        flag=true;

   

        sum=0;

   

    l=strlen(gets(in));

   

    if(l==1 && in[0]=='0')return 0;

   

    for(i=0;i<l;i++)

   

    sum+=in[i]-'0';

   

    if(sum%9==0) flag=true;

   

    else

   

    flag=false;

     

        count=1;q=0;d=sum;



        if(flag==true)

        while(d!=9 and d>9)

        {

            while(d!=0)

            {

             q+=d%10;

             d=d/10;

            }

            d=q;



        count++;

        }



        if(flag==true)

        printf("%s is a multiple of 9 and has 9-degree %d.\n",in,count);

        else if(flag==false)

        printf("%s is not a multiple of 9.\n",in);



    }



    return 0;

}

 

UVA Problem 10487(Closest Sum) Solution

UVA Problem 10924 (Prime Words ) Solution

#include <iostream>

#include <string.h>

using namespace std;

int main()

{

    char s[150];

    int i,j,total,result,l;

    while(gets(s))

    {

        total=0;

        l=strlen(s);

        for(i=0;i<l;i++)

        {

            switch(s[i])

            {

            case 'a':

            total=total+1;    break;

            case 'b':

            total=total+2;    break;

            case 'c':

            total=total+3;    break;                

            case 'd':

            total=total+4;    break;

            case 'e':

            total=total+5;    break;

            case 'f':

            total=total+6;    break;

            case 'g':

            total=total+7;    break;

            case 'h':

            total=total+8;    break;

            case 'i':

            total=total+9;    break;

            case 'j':

            total=total+10;     break;

            case 'k':

            total=total+11;     break;

            case 'l':

            total=total+12;     break;

            case 'm':

            total=total+13;     break;

            case 'n':

            total=total+14;     break;

            case 'o':

            total=total+15;     break;

            case 'p':

            total=total+16;     break;

            case 'q':

            total=total+17;     break;

            case 'r':

            total=total+18;     break;

            case 's':

            total=total+19;     break;

            case 't':

            total=total+20;     break;

            case 'u':

            total=total+21;     break;

            case 'v':

            total=total+22;     break;

            case 'w':

            total=total+23;     break;

            case 'x':

            total=total+24;     break;

            case 'y':

            total=total+25;     break;

            case 'z':

            total=total+26;     break;

            case 'A':

            total=total+27;     break;

            case 'B':

            total=total+28;     break;

            case 'C':

            total=total+29;     break;

            case 'D':

            total=total+30;     break;

            case 'E':

            total=total+31;     break;

            case 'F':

            total=total+32;     break;

            case 'G':

            total=total+33;     break;

            case 'H':

            total=total+34;     break;

            case 'I':

            total=total+35;     break;

            case 'J':

            total=total+36;     break;

            case 'K':

            total=total+37;     break;

            case 'L':

            total=total+38;     break;

            case 'M':

            total=total+39;     break;

            case 'N':

            total=total+40;     break;

            case 'O':

            total=total+41;     break;

            case 'P':

            total=total+42;     break;

            case 'Q':

            total=total+43;     break;

            case 'R':

            total=total+44;     break;

            case 'S':

            total=total+45;     break;

            case 'T':

            total=total+46;     break;

            case 'U':

            total=total+47;     break;

            case 'V':

            total=total+48;     break;

            case 'W':

            total=total+49;     break;

            case 'X':

            total=total+50;     break;

            case 'Y':

            total=total+51;     break;

            case 'Z':

            total=total+52;     break;

               

            }

        }

        result=1;

            for(i = 2; i <=total/2; i++)

             

                 if(total % i == 0)

                {

                result=0; break;   

                }

         if(result==1)  

    printf("It is a prime word.\n");

    else

    printf("It is not a prime word.\n");

}

    return 0;

}

 

UVA Problem 10487(Closest Sum) Solution

UVA Problem 10929 (You can say 11) Solution

#include <bits/stdc++.h>

using namespace std;

int main()

{

char input[1002];

    int i,j,l,sum;

    while(1)

    {

        gets(input);

        sum=0;

        l=strlen(input);

    if(input[0]=='0' and l==1)  break;

    for(i=0;i<l;i+=2)

    {

        sum+=input[i]-'0';

    }

    for(i=1;i<l;i+=2)

    {

        sum-=input[i]-'0';

    }

    if((sum) % 11) printf("%s is not a multiple of 11.\n",input);

    else

    printf("%s is a multiple of 11.\n",input);

    }

    return 0;

}

 

UVA Problem 10487(Closest Sum) Solution

UVA Problem 10948( The primary problem) Solution

#include <stdio.h>

#include<iostream>

#include<math.h>

#define max 1000005

using namespace std;



bool flag[max];

int primes[max];

int cnt;

int sieve(int z)

{

    int i,j;

    for(i=2; i<=max; i++)

    {

        primes[i]=1;

    }

    for(i=2; i<=sqrt(max); i++)

    {

        for(j=2; i*j<=max; j++)

        {

            primes[i*j]=0;

        }

    }

}



int main()

{

     int count,b,k,n;

    sieve(max);

    while(scanf("%d",&n) && n)

    {

   

        count=0;

        for(k=2; k<n; k++)

        {

            b=n-k;

            if(primes[b]&& primes[k])

            {

                count++;

                break;

            }

        }

        if(count>0)

        {

            printf("%d:\n",n);

            printf("%d+%d\n",k,b);

        }

        else

        {

            printf("%d:\n",n);

            printf("NO WAY!\n");

        }

    }

    return 0;

}