fork download
  1. using System;
  2.  
  3. namespace PerfectNumbers
  4. {
  5. class Program
  6. {
  7. static int CalcSumOfDivisors(int n)
  8. {
  9. int sum = 0;
  10. for (int i = 1; i < n; i++)
  11. {
  12. if (n % i == 0)
  13. {
  14. sum += i;
  15. }
  16. }
  17. return sum;
  18. }
  19.  
  20. static void PrintAllPerfectNumbers(int n)
  21. {
  22. for (int c = 2; c <= n; c++)
  23. {
  24. if (CalcSumOfDivisors(c) == c)
  25. {
  26. Console.WriteLine(c);
  27. }
  28. }
  29. }
  30.  
  31. static void PrintAllAmicableNumbersPairs(int n)
  32. {
  33. for (int i = 2; i <= n; i++)
  34. {
  35. int sumOfDivisorsI = CalcSumOfDivisors(i);
  36. if (CalcSumOfDivisors(sumOfDivisorsI) == i && sumOfDivisorsI != i && i < sumOfDivisorsI)
  37. {
  38. Console.WriteLine("({0}, {1})", i, sumOfDivisorsI);
  39. }
  40. }
  41. }
  42.  
  43. static void Main(string[] args)
  44. {
  45. Console.WriteLine("Enter a number n: ");
  46. int inputNumber = int.Parse(Console.ReadLine());
  47. Console.WriteLine("All perfect numbers in the range [2; {0}]:", inputNumber);
  48. PrintAllPerfectNumbers(inputNumber);
  49. Console.WriteLine("All friendly numbers in the range [2; {0}]:", inputNumber);
  50. PrintAllAmicableNumbersPairs(inputNumber);
  51. }
  52. }
  53. }
  54.  
Success #stdin #stdout 0.64s 24492KB
stdin
10000
stdout
Enter a number n: 
All perfect numbers in the range [2; 10000]:
6
28
496
8128
All friendly numbers in the range [2; 10000]:
(220, 284)
(1184, 1210)
(2620, 2924)
(5020, 5564)
(6232, 6368)