Create a program that will generate the sample screen output below:
Enter how many number(s) to be checked: 28
Number Sum of Factors Remarks
1 0 Deficient
2 1 Deficient
3 1 Deficient
4 3 Deficient
5 1 Deficient
6 6 Perfect
7 1 Deficient
8 7 Deficient
9 4 Deficient
10 8 Deficient
11 1 Deficient
12 16 Abundant
13 1 Deficient
14 10 Deficient
15 9 Deficient
16 15 Deficient
17 1 Deficient
18 21 Abundant
19 1 Deficient
20 22 Abundant
21 11 Deficient
22 14 Deficient
23 1 Deficient
24 36 Abundant
25 6 Deficient
26 16 Deficient
27 13 Deficient
28 28 Perfect
Summary
Deficient number(s): 22
Abundant number(s): 4
Perfect number(s): 2
Total number(s): 28
using System;
namespace Deficient_numbers
{
internal class Program
{
public static void Main(string[] args)
{
Console.Write("Enter how many number(s) to be checked: ");
int count = int.Parse(Console.ReadLine());
Console.Write("Select a range of random numbers from 0 to: ");
int range = int.Parse(Console.ReadLine());
// counters
int abundant = 0;
int deficient = 0;
int perfect = 0;
for (int i = 1; i <= count; i++)
{
int n = rnd.Next(range);
Console.Write($"[{i}] ");
// Checking Abundant numbers
int sum = 0;
for(int k = 1; k < n; k++) {
if(n % k == 0)
sum = sum + k;
}
if (n < sum) {
Console.WriteLine($"{n} = Abundant");
abundant++;
continue;
}
if(isDef(n)) { // Checking deficient numbers
Console.WriteLine($"{n} = Deficient.");
deficient++;
continue;
}
if (is_perfect(n)) { // Checking perfect numbers
perfect++;
Console.WriteLine($"{n} = Perfect");
}
}
Console.WriteLine($"\nSummary:\nDeficient number(s): {deficient}\nAbundant number(s): {abundant}\nPerfect number(s): {perfect}\nTotal number(s): {count}");
Console.ReadLine();
}
static int divsum(int n) // For deficient numbers
{
int sum = 0;
for (int i = 1; i <= (Math.Sqrt(n)); i++) {
if (n % i == 0) {
if (n / i == i)
sum = sum + i;
else {
sum = sum + i;
sum = sum + (n / i);
}
}
}
return sum;
}
static bool isDef(int n) // Checking deficient numbers
{
return (divsum(n) < (2 * n));
}
static bool is_perfect(int num) // Checking perfect numbers
{
int sum = 0;
for (int j = 1; j < num; j++)
if (num % j == 0)
sum += j;
if(sum == num && num != 0)
return true;
return false;
}
static Random rnd = new Random(DateTime.Now.Millisecond);
}
}
Comments
Leave a comment