How to write an algorithm to do a binary to decimal conversion ?

/* part of work copied from http://www.sanfoundry.com/c-program-binary-number-into-decimal/ */
#include <stdio.h>

btd()
{
int num, binary_val, decimal_val = 0, base = 1, rem;
printf("Enter a binary number : ");
scanf("%d",&num);
binary_val = num;
while ( num > 0 )
{
rem = num % 10;
decimal_val = decimal_val + rem * base;
num = num / 10;
base = base * 2;
}
printf("The binary number is : %d \n",binary_val);
printf("It's decimal equivalent is: %d \n",decimal_val);
}

/* http://numbermonk.com/ */
/* remainder -- a part that is still to come to make things perfect
(or make something working fully) */
/* http://www.mathsisfun.com/definitions/remainder.html */
/* "num" is considered as a number which has to be broken
into 10 pieces beacuse the resulting number is built
using a maximum of 10 building blocks.

How to write an algorithm to swap values ?

/* part of work copied from http://www.sanfoundry.com/c-program-swap-values/ */
#include <stdio.h>

swap_values()
{
int temp;
int *ptr1, *ptr2;
int a, b;
printf("Enter integer values to be swapped: ");
scanf("%d %d",&a,&b);
ptr1 = &a;
ptr2 = &b;
temp = *ptr1;
*ptr1 = *ptr2;
*ptr2 = temp;
printf("Swapped values are: %d %d \n",a,b);
}

/* http://www.programmingsimplified.com/c-program-swap-two-numbers */
/* http://betterexplained.com/articles/swap-two-variables-using-xor/ */
/* http://www.science.unitn.it/~fiorella/guidelinux/tlk/node27.html */

Hacking with integer divisibility

/* work copied from http://www.sanfoundry.com/c-program-number-divisible-by-5/ */
#include <stdio.h>

numberdivi()
{

int i, num1, num2, count = 0, sum = 0;
printf("Enter the value of num1 and num2 : ");
scanf("%d %d",&num1,&num2);
for (i = num1; i < num2 ; i++)
{
if ((i % 5) == 0)
{
printf("%3d,",i);
count++;
sum = sum + i;
}
}
printf("\n Number of integers divisible by 5 between %d and %d = %d \n",num1,num2,count);
printf("The sum of all integers that are divisible by 5 = %d\n",sum);
}
/* http://en.wikipedia.org/wiki/Divisibility_rule */
/* http://stackoverflow.com/questions/18473730/algorithm-in-hardware-to-find-out-if-number-is-divisible-by-five */

Hacking with debian netselect-apt command

$sudo netselect-apt -t 2 -c IN
Using distribution stable.
Retrieving the list of mirrors from www.debian.org...

--2014-08-31 23:00:07--  http://www.debian.org/mirror/mirrors_full
Resolving www.debian.org (www.debian.org)... 140.211.15.34, 128.31.0.51
Connecting to www.debian.org (www.debian.org)|140.211.15.34|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 350858 (343K) [text/html]
Saving to: ‘/tmp/netselect-apt.Pjgwxz’

100%[====================================================================================>] 3,50,858     110KB/s   in 3.1s   

2014-08-31 23:00:11 (110 KB/s) - ‘/tmp/netselect-apt.Pjgwxz’ saved [350858/350858]

Choosing a main Debian mirror using netselect.
(will filter only for mirrors in country IN)
Running netselect to choose 2 out of 4 addresses.       
...........
Only found  1 hosts out of  2 requested.
The fastest 2 servers seem to be:

	http://debian.mirror.net.in/debian/

Of the hosts tested we choose the fastest valid for HTTP:
        http://debian.mirror.net.in/debian/

Writing sources.list.
sources.list exists, moving to sources.list.1409506243
Done.
$

Hacking with an algorithm to find prime factor of a number

$./app 
Sign detection [1] 
Power of two [2] 
Counting No. of bits set [3] 
Set or clear bits without branching[4] 
Find maximum value[5] 
Finding least common multiple[6] 
Finding the greatest commom divisor[7] 
Finding if a number is an Armstrong number or not[8] 
Finding if a given number is prime number[9]  
Finding the number of twin prime numbers[10] 
Finding if a number is palindrome or not[11] 
Finding prime factor of a number[12] 
12
Enter a number: 36

 2 is a prime factor 

 3 is a prime factor 
$./app 
Sign detection [1] 
Power of two [2] 
Counting No. of bits set [3] 
Set or clear bits without branching[4] 
Find maximum value[5] 
Finding least common multiple[6] 
Finding the greatest commom divisor[7] 
Finding if a number is an Armstrong number or not[8] 
Finding if a given number is prime number[9]  
Finding the number of twin prime numbers[10] 
Finding if a number is palindrome or not[11] 
Finding prime factor of a number[12] 
12
Enter a number: 76

 2 is a prime factor 

 19 is a prime factor 
$bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'. 
76/19
4


How to write an algorithm to find if a number is palindrome or not

#include <stdio.h>

palindrome()
{

int n, reverse = 0, temp;
printf("Enter a number to check if it is a palindrome or not: ");
scanf("%d",&n);
temp = n;

while ( temp != 0 )
{
reverse = reverse * 10;
reverse = reverse + temp % 10;
temp = temp/10;
}

if ( n == reverse )
printf("%d is a palindrome number \n",n);
else
printf("%d is not a palindrome number \n",n);
}

Tinkering with an Armstrong number finding program function

$./app 
Sign detection [1] 
Power of two [2] 
Counting No. of bits set [3] 
Set or clear bits without branching[4] 
Find maximum value[5] 
Finding least common multiple[6] 
Finding the greatest commom divisor[7] 
Finding if a number is an Armstrong number or not[8] 
8
Enter a positive integer: 153
153 is an Armstrong number 
$./app 
Sign detection [1] 
Power of two [2] 
Counting No. of bits set [3] 
Set or clear bits without branching[4] 
Find maximum value[5] 
Finding least common multiple[6] 
Finding the greatest commom divisor[7] 
Finding if a number is an Armstrong number or not[8] 
8
Enter a positive integer: 154
154 is not an Armstrong number 
$./app 
Sign detection [1] 
Power of two [2] 
Counting No. of bits set [3] 
Set or clear bits without branching[4] 
Find maximum value[5] 
Finding least common multiple[6] 
Finding the greatest commom divisor[7] 
Finding if a number is an Armstrong number or not[8] 
8
Enter a positive integer: 1
1 is an Armstrong number 
$