Skip to content

Instantly share code, notes, and snippets.

@tssm
Last active September 28, 2015 00:48
Show Gist options
  • Select an option

  • Save tssm/1358660 to your computer and use it in GitHub Desktop.

Select an option

Save tssm/1358660 to your computer and use it in GitHub Desktop.

Revisions

  1. tssm revised this gist Mar 6, 2014. 10 changed files with 91 additions and 62 deletions.
    2 changes: 1 addition & 1 deletion factorial → gistfile1.cpp
    Original file line number Diff line number Diff line change
    @@ -1,4 +1,4 @@
    int calculateFactorialOf(unsigned number) {
    int getFactorialOf(unsigned number) {

    if (number == 0) {

    14 changes: 0 additions & 14 deletions gistfile2.cpp
    Original file line number Diff line number Diff line change
    @@ -1,14 +0,0 @@
    bool isHappy(unsigned int number) {
    unsigned int sum;

    do {
    sum = 0;
    for (; number > 0; sum += (number % 10) * (number % 10), number /= 10);
    if (sum < 10) break;
    number = sum;
    } while (true);

    if (sum == 1) return true;

    return false;
    }
    1 change: 1 addition & 0 deletions gistfile1.py → gistfile2.py
    Original file line number Diff line number Diff line change
    @@ -1,4 +1,5 @@
    def isNarcissistic(number):

    # Determines the number of digits:
    digits = 0
    for (dividend = number; dividend > 0; dividend //= 10):
    22 changes: 16 additions & 6 deletions gistfile3.cpp
    Original file line number Diff line number Diff line change
    @@ -1,8 +1,18 @@
    bool isRepunit(number) {
    while (number > 0) {
    if (number % 10 != 1) return false;
    number /= 10;
    }
    bool isHappy(unsigned int number) {

    unsigned int sum;

    do {

    sum = 0;
    for (; number > 0; sum += (number % 10) * (number % 10), number /= 10);
    if (sum < 10) break;
    number = sum;

    } while (true);

    if (sum == 1) return true;

    return false;

    return true;
    }
    16 changes: 9 additions & 7 deletions gistfile4.cpp
    Original file line number Diff line number Diff line change
    @@ -1,10 +1,12 @@
    bool isPrime(long int number) {
    if (number <= 1) return false;

    if (number == 2) return true;
    bool isRepunit(number) {

    for (unsigned int i = 2; i < (number / 2) + 1; ++i)
    if (number % i == 0) return false;
    while (number > 0) {

    if (number % 10 != 1) return false;
    number /= 10;

    }

    return true;

    return true;
    }
    20 changes: 10 additions & 10 deletions gistfile5.cpp
    Original file line number Diff line number Diff line change
    @@ -1,15 +1,15 @@
    bool isAutomorphic(number) {
    unsigned int digits = 0,
    divisor = 1,
    squareNumber = number * number;
    bool isPrime(long int number) {

    // Calculate the number of digits:
    for (unsigned int i = number; i > 0; i /= 10, ++digits);
    if (number <= 1) return false;

    if (number == 2) return true;

    // Calculate the divisor to use:
    for (int i = 1; i <= digits; divisor *= 10, i++);
    for (unsigned int i = 2; i < (number / 2) + 1; ++i) {

    if ((squareNumber % divisor) == number) return true;
    if (number % i == 0) return false;

    }

    return true;

    return false;
    }
    17 changes: 11 additions & 6 deletions gistfile6.cpp
    Original file line number Diff line number Diff line change
    @@ -1,10 +1,15 @@
    bool isPalindromic(unsigned int number) {
    int reversed = 0;
    bool isAutomorphic(number) {

    // Reverse the number:
    for (unsigned int i = number; i > 0; reversed = (10 * reversed) + (i % 10), i /= 10);
    unsigned int digits = 0, divisor = 1, squareNumber = number * number;

    if (reversed == number) return true;
    // Calculate the number of digits:
    for (unsigned int i = number; i > 0; i /= 10, ++digits);

    // Calculate the divisor to use:
    for (int i = 1; i <= digits; divisor *= 10, i++);

    if ((squareNumber % divisor) == number) return true;

    return false;

    return false;
    }
    17 changes: 8 additions & 9 deletions gistfile7.cpp
    Original file line number Diff line number Diff line change
    @@ -1,13 +1,12 @@
    bool isPerfect(unsigned int number) {
    unsigned int divisorsSum = 1;
    bool isPalindromic(unsigned int number) {

    for (divisor = 2; divisor <= (number / 2) + 1; ++divisor) {
    if (number % divisor == 0)
    divisorsSum += divisor;
    }
    int reversed = 0;

    if (number == divisorsSum)
    return true;
    // Reverse the number:
    for (unsigned int i = number; i > 0; reversed = (10 * reversed) + (i % 10), i /= 10);

    if (reversed == number) return true;

    return false;

    return false;
    }
    29 changes: 20 additions & 9 deletions gistfile8.cpp
    Original file line number Diff line number Diff line change
    @@ -1,12 +1,23 @@
    # Change the base of a decimal base integer
    unsigned int(unsigned int number, unsigned short int newBase) {
    unsigned int baseChanged = 0,
    exponent = 1;
    bool isPerfect(unsigned int number) {

    for (unsigned int quotient = number; quotient > 0; quotient /= base) {
    baseChanged += exponent * (quotient % base);
    exponent = (10 * exponent);
    }
    unsigned int divisorsSum = 1;

    for (divisor = 2; divisor <= (number / 2) + 1; ++divisor) {

    if (number % divisor == 0) {

    divisorsSum += divisor;

    }

    }

    if (number == divisorsSum) {

    return true;

    }

    return false;

    return baseChanged;
    }
    15 changes: 15 additions & 0 deletions gistfile9.cpp
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,15 @@
    # Change the base of a decimal base integer
    unsigned int(unsigned int number, unsigned short int newBase) {

    unsigned int baseChanged = 0, exponent = 1;

    for (unsigned int quotient = number; quotient > 0; quotient /= base) {

    baseChanged += exponent * (quotient % base);
    exponent = (10 * exponent);

    }

    return baseChanged;

    }
  2. tssm revised this gist Mar 6, 2014. 1 changed file with 15 additions and 0 deletions.
    15 changes: 15 additions & 0 deletions factorial
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,15 @@
    int calculateFactorialOf(unsigned number) {

    if (number == 0) {

    return 1;

    }

    unsigned int factorial, i;

    for (factorial = i = 1; i <= number; factorial *= i, i++);

    return factorial;

    }
  3. tssm revised this gist Jul 30, 2013. No changes.
  4. tssm revised this gist Jul 30, 2013. 8 changed files with 82 additions and 0 deletions.
    File renamed without changes.
    14 changes: 14 additions & 0 deletions gistfile2.cpp
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,14 @@
    bool isHappy(unsigned int number) {
    unsigned int sum;

    do {
    sum = 0;
    for (; number > 0; sum += (number % 10) * (number % 10), number /= 10);
    if (sum < 10) break;
    number = sum;
    } while (true);

    if (sum == 1) return true;

    return false;
    }
    8 changes: 8 additions & 0 deletions gistfile3.cpp
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,8 @@
    bool isRepunit(number) {
    while (number > 0) {
    if (number % 10 != 1) return false;
    number /= 10;
    }

    return true;
    }
    10 changes: 10 additions & 0 deletions gistfile4.cpp
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,10 @@
    bool isPrime(long int number) {
    if (number <= 1) return false;

    if (number == 2) return true;

    for (unsigned int i = 2; i < (number / 2) + 1; ++i)
    if (number % i == 0) return false;

    return true;
    }
    15 changes: 15 additions & 0 deletions gistfile5.cpp
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,15 @@
    bool isAutomorphic(number) {
    unsigned int digits = 0,
    divisor = 1,
    squareNumber = number * number;

    // Calculate the number of digits:
    for (unsigned int i = number; i > 0; i /= 10, ++digits);

    // Calculate the divisor to use:
    for (int i = 1; i <= digits; divisor *= 10, i++);

    if ((squareNumber % divisor) == number) return true;

    return false;
    }
    10 changes: 10 additions & 0 deletions gistfile6.cpp
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,10 @@
    bool isPalindromic(unsigned int number) {
    int reversed = 0;

    // Reverse the number:
    for (unsigned int i = number; i > 0; reversed = (10 * reversed) + (i % 10), i /= 10);

    if (reversed == number) return true;

    return false;
    }
    13 changes: 13 additions & 0 deletions gistfile7.cpp
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,13 @@
    bool isPerfect(unsigned int number) {
    unsigned int divisorsSum = 1;

    for (divisor = 2; divisor <= (number / 2) + 1; ++divisor) {
    if (number % divisor == 0)
    divisorsSum += divisor;
    }

    if (number == divisorsSum)
    return true;

    return false;
    }
    12 changes: 12 additions & 0 deletions gistfile8.cpp
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,12 @@
    # Change the base of a decimal base integer
    unsigned int(unsigned int number, unsigned short int newBase) {
    unsigned int baseChanged = 0,
    exponent = 1;

    for (unsigned int quotient = number; quotient > 0; quotient /= base) {
    baseChanged += exponent * (quotient % base);
    exponent = (10 * exponent);
    }

    return baseChanged;
    }
  5. tssm revised this gist May 3, 2012. 1 changed file with 6 additions and 10 deletions.
    16 changes: 6 additions & 10 deletions isNarcissistic.py
    Original file line number Diff line number Diff line change
    @@ -1,19 +1,15 @@
    def isNarcissistic(number):
    digits = digitsSum = 0

    # Determines the number of digits:
    dividend = number
    while (dividend > 0):
    dividend //= 10
    digits = digits + 1
    digits = 0
    for (dividend = number; dividend > 0; dividend //= 10):
    digits += 1

    # Calculates the sum of the squared digits:
    dividend = number
    while (dividend > 0):
    digitsSum = 0
    for (dividend = number; dividend > 0; dividend //= 10):
    digitsSum += (dividend % 10) ** digits
    dividend //= 10

    # Returns the answer
    # Returns the answer:
    if (digitsSum == number):
    return true

  6. tssm created this gist Nov 11, 2011.
    20 changes: 20 additions & 0 deletions isNarcissistic.py
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,20 @@
    def isNarcissistic(number):
    digits = digitsSum = 0

    # Determines the number of digits:
    dividend = number
    while (dividend > 0):
    dividend //= 10
    digits = digits + 1

    # Calculates the sum of the squared digits:
    dividend = number
    while (dividend > 0):
    digitsSum += (dividend % 10) ** digits
    dividend //= 10

    # Returns the answer
    if (digitsSum == number):
    return true

    return false