w3resource

C Exercises: Find the largest palindrome made from the product of two 3-digit numbers

C Programming Practice: Exercise-21 with Solution

2520 is the smallest number that can be divided by each of the numbers from 1 to 10 without any remainder.
Write a C programming to find the smallest positive number that is evenly divisible by all of the numbers from 1 to 20?.

C Code:

/* Copyright (c) 2009, eagletmt, Released under the MIT License <http://opensource.org/licenses/mit-license.php> */
#include <stdio.h>
static unsigned long gcd(unsigned long a, unsigned long b);
static __inline unsigned long lcm(unsigned long a, unsigned long b);
int main(void)
{
  unsigned long ans = 1;
  unsigned long i;
  for (i = 1; i <= 20; i++) {
    ans = lcm(ans, i);
  }
  printf("%lu\n", ans);
  return 0;
}
unsigned long gcd(unsigned long a, unsigned long b)
{
  unsigned long r;
  if (a > b) {
    unsigned long t = a;
    a = b;
    b = t;
  }
  while (r = a%b) {
    a = b;
    b = r;
  }
  return b;
}
unsigned long lcm(unsigned long a, unsigned long b)
{
  unsigned long long p = (unsigned long long)a * b;
  return p/gcd(a, b);
}

Sample Output:

232792560

Flowchart:

C Programming Flowchart: Find the smallest positive number that is evenly divisible by all of the numbers from 1 to 20.

C Programming Code Editor:

Contribute your code and comments through Disqus.

Previous: Write a C programming to find the largest palindrome made from the product of two 3-digit numbers.
Next: Write a C programming to find the difference between the sum of the squares of the first one hundred natural numbers and the square of the sum.

What is the difficulty level of this exercise?



C Programming: Tips of the Day

The tilde operator in C:

The ~ operator is bitwise NOT, it inverts the bits in a binary number:

NOT 011100
  = 100011

Ref : https://bit.ly/3DR1N24