Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace prac_5_ex_2
- {
- class Program
- {
- static int SumOfDividers(int a)
- {
- int s = 0;
- for (int i = 1; i <= Math.Sqrt(a); ++i)
- if (a % i == 0)
- {
- if (i * i == a) s += i;
- else s += i + a/i;
- }
- return s;
- }
- static bool IsPrime(int a)
- {
- int q = 0;
- for (int i = 1; i <= Math.Sqrt(a); ++i)
- {
- if (a % i == 0)
- if (i * i == a) q++;
- else q += 2;
- }
- if (q == 1) return true;
- else return false;
- }
- static void Main(string[] args)
- {
- //example
- /* Console.Write("Введите n: ");
- int n = int.Parse(Console.ReadLine());*/
- //a)
- Console.Write("a)\n\ta = ");
- int aa = int.Parse(Console.ReadLine());
- Console.Write("\tb = ");
- int ba = int.Parse(Console.ReadLine());
- for (int i = aa; i <= ba; i++)
- Console.WriteLine("\n\t{0} — {1}", i, SumOfDividers(i));
- //b)
- Console.Write("\nb)\n\ta = ");
- int ab = int.Parse(Console.ReadLine());
- Console.Write("\tb = ");
- int bb = int.Parse(Console.ReadLine());
- Console.Write("\tn = ");
- int n = int.Parse(Console.ReadLine());
- bool flag = false;
- for (int i = ab; i <= bb; i++)
- if (SumOfDividers(i) == n)
- {
- Console.WriteLine("\n\t{0}", i);
- flag = true;
- }
- if (!flag) Console.WriteLine("\n\tИскомых чисел в данном промежутке нет");
- //c)
- Console.Write("c)\n\ta = ");
- int ac = int.Parse(Console.ReadLine());
- Console.Write("\tb = ");
- int bc = int.Parse(Console.ReadLine());
- int max = SumOfDividers(bc), num = bc;
- for (int i = bc; i >= ac; i--)
- {
- if (!IsPrime(i))
- if (SumOfDividers(i) > max)
- {
- max = SumOfDividers(i);
- num = i;
- }
- }
- Console.WriteLine("\t{0}, сумма делителей — {1}", num, max);
- //d)
- flag = false;
- Console.Write("d)\n\tA = ");
- int ad = int.Parse(Console.ReadLine());
- for (int i = ad-1; i > 0; i--)
- if (SumOfDividers(i) == SumOfDividers(ad))
- {
- Console.WriteLine("\tИскомое число — {0}", i);
- flag = true;
- break;
- }
- if (!flag) Console.WriteLine("\tЧисла с такой суммой делителей нет");
- Console.ReadKey();
- }
- }
- }
Add Comment
Please, Sign In to add comment