Project Euler #17: Number to Words | Hackerrank | Project Euler

 Number to Words


The numbers 1 to 5 written out in words are One, Two, Three, Four, Five 

First character of each word will be capital letter for example:
 104382426112 is 

One Hundred Four Billion Three Hundred Eighty Two Million Four Hundred Twenty Six Thousand One Hundred and Twelve

Given a number, you have to write it in words.

Input Format

The first line contains an integer T, i.e., number of test cases.
Next T lines will contain an integer N.

Constraints

1<=T<=10
0<=N<=10^2

Output Format

Print the values corresponding to each test case.

Sample Input

2
10
17

Sample Output

Ten 
Seventeen

Solution : Source (Hackerrank)


#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
char digits[20][10] = {"","One","Two","Three","Four",
"Five","Six","Seven","Eight","Nine","Ten","Eleven",
"Twelve","Thirteen","Fourteen",
"Fifteen","Sixteen","Seventeen","Eighteen","Nineteen"};
char tens[11][10] =  {"","","Twenty","Thirty","Forty",
"Fifty","Sixty","Seventy","Eighty","Ninety"};

void word(int num){
    if(num/100)
        printf("%s Hundred ", digits[num/100]);
    if((num%100) < 20 && (num%100) > 0)
        printf("%s ",digits[num%100]);
    else if((num/10)%10){
        printf("%s ", tens[(num/10)%10]);
        if(num%10)
            printf("%s ", digits[num%10]);
    }
}

int main() {
    int t;
    scanf("%d", &t);
    while(t--){
        long long int num;
        scanf("%lld", &num);
        int tn = num / 1000000000000;
        int bn = (num / 1000000000) % 1000;
        int mn = (num / 1000000) % 1000;
        int th = (num / 1000) % 1000;
        int hd = num % 1000;
        //printf("%d %d %d %d %d\n", tn, bn, mn, th, hd);
        if((tn + bn + mn + th + hd) == 0)
            printf("Zero");
        if(tn){
            word(tn);
            printf("Trillion ");
        }
        if(bn){
            word(bn);
            printf("Billion ");
        }
        if(mn){
            word(mn);
            printf("Million ");
        }
        if(th){
            word(th);
            printf("Thousand ");
        }
        if(hd){
            word(hd);
        }
       printf("\n"); 
    }
    return 0;
}


You can also run it on an online IDE :


Your feedback are always welcome! If you have any doubt you 
can contact me or leave a comment!  
Happy Coding!! Cheers!!!




Project Euler #6: Sum square difference | Hackerrank | Project Euler

 

 Sum square difference 


The sum of the squares of the first ten natural numbers is, 1^2+2^2+...+10^2=385 . The square of the sum of the first ten natural numbers is, (1+2+...+10)^2 = 55^2 = 3025 . Hence the absolute difference between the sum of the squares of the first ten natural numbers and the square of the sum is 3025-385=2640.

Find the absolute difference between the sum of the squares of the first N natural numbers and the square of the sum.

Input Format

First line contains T that denotes the number of test cases. This is followed by T lines, each containing an integer, N.

Constraints

1<=T<=10^4

1<=N<=10^4

Output Format

Print the required answer for each test case.

Sample Input 0

2

3

10

Sample Output 0

22

2640


Explanation 0

For N=3 , (1+2+3)^2 - (1^2+2+^2+3^2) = 22

For N=10 , (1+2+...+10)^2 - (1^2+2^2+...10^2) = 2640 

Solution 

#include <math.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <assert.h>
#include <limits.h>
#include <stdbool.h>

int main(){
    int t; 
    scanf("%d",&t);
    for(int a0 = 0; a0 < t; a0++){
        long long n; 
        scanf("%lld",&n);
        long long f1,f2,diff;
        f1=(n*(n+1))/2;
        f1=f1*f1;
        f2=(n*(n+1)*(2*n+1))/ 6;
        diff=(f1-f2);
        if (diff<0)
        diff=diff*-1;
        printf("%lld\n",diff);
    }
    return 0;
}


You can also run it on an online IDE:

https://ide.geeksforgeeks.org/6601fb42-0c0f-4c75-8058-27c871f50f58

Your feedback are always welcome! If you have any doubt you can contact me or leave a comment!  Happy Coding !! Cheers!!!


Project Euler #2: Even Fibonacci numbers | Hackerrank | Project Euler

 Even Fibonacci Numbers


Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be: 1,2,3,5,8,13,21,3,55,89,...

By considering the terms in the Fibonacci sequence whose values do not exceed N, find the sum of the even-valued terms.

Input Format

First line contains T that denotes the number of test cases. This is followed by T lines, each containing an integer,N.

Constraints

1<=T<=10^5
10<=N<=4*10^16

Output Format

Print the required answer for each test case.

Sample Input 0

2
10
100

Sample Output 0

10
44

Explanation 0

For N=10, we have {2,8}, sum is 10.
For N=100, we have {2,8,34}, sum is 44.


Solution:

#include <math.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <assert.h>
#include <limits.h>
#include <stdbool.h>

int main(){
    int t; 
    scanf("%d",&t);
    for(int a0 = 0; a0 < t; a0++){
        long n,sum=2,p1 = 1p2 = 2, fib = 0
        scanf("%ld",&n);
         fib= p1 + p2;
        while (fib <= n) {
         if(fib%2==0)
            sum=sum+fib;
         p1 = p2;
         p2 = fib;
         fib = p1 + p2;
    }
        printf("%ld\n",sum);
    }
    return 0;
}


You can also run it on an online IDE: 


Your feedback are always welcome! If you have any doubt you can contact me or leave a comment!  Happy Coding !! Cheers!!!

Project Euler #1: Multiples of 3 and 5 | Hackerrank | Project Euler

Multiple of 3 and 5 


If we list all the natural numbers below 10 that are multiples of 3 or 5 , we get 3,5,6 and 9. The sum of these multiples is 23 .

Find the sum of all the multiples of  3 or 5  below N.

Input Format

First line contains T that denotes the number of test cases. This is followed by T lines, each containing an integer, N.

Constraints

1<=T<=10^5
1<=T<=10^9

Output Format

For each test case, print an integer that denotes the sum of all the multiples of  3 or 5 below  N.

Sample Input 0

2

10

100

Sample Output 0

23

2318

Explanation 0

For N=10, if we list all the natural numbers below 10 that are multiples of  3 or 5 , we get 3,5,6 and 9 . The sum of these multiples is 23.

Similarly for N=100, we get 2318.

Solution:

#include <math.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <assert.h>
#include <limits.h>
#include <stdbool.h>

int main(){
    int t;
    long int s3,s5,s15,f3,f5,f15; 
    scanf("%d",&t);
    for(int a0 = 0; a0 < t; a0++){
        long int sum=0,n;
        scanf("%ld",&n);
        f3=(n-1)/3;
        f5=(n-1)/5;
        f15=(n-1)/15;
        s3=3*((f3*(f3+1))/2);
        s5=5*((f5*(f5+1))/2);
        s15=15*((f15*(f15+1))/2);
        sum=s5+s3-s15;
        printf("%ld\n",sum);
    }
    return 0;
}

You can also run it on an online IDE:   


Your feedback are always welcome! If you have any doubt you can contact me or leave a comment!  Happy Coding !! Cheers!!!


Related Links:


Super Market Problem | TCS Code Vita 2023 - Zone 1 | Super Market TCS Code Vita 2023 Solution | Code Vita 2023 | Code Vita 2023 season 11 solution

 Problem Description: In a Super market we will find many variations of the same product. In the same way we can find many types of rice bag...