Level 1

1.

Take 10 integers from keyboard using loop and print their average value on the screen.

Answer

```
sum = 0
i = 10
while i>0
puts "Enter number"
num = gets.chomp.to_i
sum = sum + num
i = i-1
end
puts "average is",sum/10.0
```

2.

Print the following patterns using loop :

a.

*

**

***

****

b.

*

***

*****

***

*

c.

1010101

10101

101

1

a.

*

**

***

****

b.

*

***

*****

***

*

c.

1010101

10101

101

1

Answer

```
#a
i = 1
while i<=4
puts "*"*i
i = i+1
end
#b
i = 1
j = 2
while i>=1
a = " "*j+"*"*i+" "*j
puts a
i = i+2
j = j-1
if i>5
break
end
end
i = 3
j = 1
while i>=1
a = " "*j+"*"*i+" "*j
puts a
i = i-2
j = j+1
end
#c
#Do yourself
```

3.

Print multiplication table of 24, 50 and 29 using loop.

Answer

```
i = 1
while i<=10
puts 24*i
i = i+1
end
```

4.

Write an infinite loop.

A inifinte loop never ends. Condition is always true.

A inifinte loop never ends. Condition is always true.

Answer

```
while true
puts "INFINITE"
end
```

5.

Factorial of any number n is represented by n! and is equal to 1*2*3*....*(n-1)*n. E.g.-

4! = 1*2*3*4 = 24

3! = 3*2*1 = 6

2! = 2*1 = 2

Also,

1! = 1

0! = 0

Write a program to calculate factorial of a number.

4! = 1*2*3*4 = 24

3! = 3*2*1 = 6

2! = 2*1 = 2

Also,

1! = 1

0! = 0

Write a program to calculate factorial of a number.

Answer

```
puts "Enter number"
number = gets.chomp.to_i
fac = 1
if number == 0
print 1
else
while number>=1
fac = fac*number
number = number-1
end
puts fac
end
```

6.

Write a program to find greatest common divisor (GCD) or highest common factor (HCF) of given two numbers.

Answer

```
puts "Enter first number"
x = gets.chomp.to_i
puts "Enter second number"
y = gets.chomp.to_i
#x,y = 10, 20 means x = 10 y = 20
while y != 0
x, y = y, x % y
end
puts x
```

7.

Take integer inputs from user until he/she presses q ( Ask to press q to quit after every integer input ). Print average and product of all numbers.

Answer

```
# Do it yourself
# This type of example is discussed in tutorial
```

Level 2

1.

Calculate the sum of digits of a number given by user. E.g.-

INUPT : 123 OUPUT : 6

INUPT : 12345 OUPUT : 15

INUPT : 123 OUPUT : 6

INUPT : 12345 OUPUT : 15

Answer

```
puts "Enter a number"
number = gets.chomp.to_i
summ = 0
#number%10 will give last digit of number
#number = number/10 will give new number without that digit
#we will stop when number will be smaller than 10
while true
r = number%10
number = number/10
summ = summ+r
if number < 10
summ = summ+number
break
end
end
puts summ
```

2.

A three digit number is called Armstrong number if sum of cube of its digit is equal to number itself.

E.g.- 153 is an Armstrong number because (1^{3})+(5^{3})+(3^{3}) = 153.

Write all Armstrong numbers 100 to 500.

E.g.- 153 is an Armstrong number because (1

Write all Armstrong numbers 100 to 500.

Answer

```
#Find seperate digits as done in previous question
#then find the sum of cubes
```

3.

Write a program to print a number given by user but digits reversed. E.g.-

INPUT : 123 OUTPUT : 321

INPUT : 12345 OUTPUT : 54321

INPUT : 123 OUTPUT : 321

INPUT : 12345 OUTPUT : 54321

4.

Write a program to find prime factor of a number.

If a factor of a number is prime number then it is its prime factor.

If a factor of a number is prime number then it is its prime factor.

Answer

This is not an efficent algorithm. You can also use **sieve algorithm** to find prime numbers. You can see this answer

```
puts "Enter number"
number = gets.chomp.to_i
i = 2
while i <= number
#Checking if prime or not
j = 2
count = 0
while j <= i
if i%j == 0
count = count+1
end
j = j+1
end
#if count > 1 then it is not prime
#if prime and factor(number%i==0) then it is prime factor
if count <= 1 && number%i == 0
puts i
end
i = i+1
end
```

5.

Write a program to print all prime number in between 1 to 100.

Recent Posts

Beginning with ML 2.0: Multivariate Linear Regression

Beginning with Machine Learning: Linear Regression

Scrolling Progress Indicator

Getting Notebook Paper Effect with CSS