Ввести целые положительные числа A и B. Найти их наибольший общий делитель - C#
Формулировка задачи:
Люди помогите написать три проги на шарпе.
1прога) Ввести целые положительные числа A и B. Найти их наибольший общий делитель
(НОД), используя алгоритм Евклида: НОД(A, B)=НОД(B, A mod B), если B ≠ 0;
НОД(A, 0)=A, где «mod» обозначает операцию взятия остатка от деления.
2прога) Осуществить ввод последовательности целых чисел в количестве не меньшем двух.
Вычислить сумму тех из них, порядковые номера которых - простые числа.
Последовательность потенциально не ограничена, окончанием последовательности
служит число 0.
3прога) Ввести целое число N > 0. Найти значение выражения 1.1 – 1.2 + 1.3 – ... (N
слагаемых, знаки чередуются). Условный оператор не использовать.
Решение задачи: «Ввести целые положительные числа A и B. Найти их наибольший общий делитель»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
namespace IsPrime
{
internal class Program
{
private static bool IsPrime(int x)
{
if (x < 1) return false;
for (int i = 2; i * i <= x; i++)
if ((x % i) == 0) return false;
return true;
}
private static void Main()
{
var list = new List<int>();
var input = -1;
Console.WriteLine("Вводите числа. Для выхода наберите 0");
while (input != 0)
{
if (int.TryParse(Console.ReadLine(), out input))
list.Add(input);
else
Console.WriteLine("Ошибка. Вводить можно только целые числа");
}
if (list.Count < 2)
{
Console.WriteLine("Ошибка. Должно быть введено не менее 2 элементов. Введено: {0}",
list.Count.ToString());
return;
}
int i = 0;
int sum = list.Where(x => IsPrime(++i)).Sum();
Console.WriteLine("Сумма равна {0}", sum.ToString());
Console.Write("\n\nПрограмма завершена. Для выхода нажмите любую клавишу");
Console.ReadKey(true);
}
}
}