Найти сумму простых чисел, которые не превышают заданное число N - C#
Формулировка задачи:
Доброе время,есть такая вот задачка.
Написать функцию, которая получает на вход положительное целое число n и возвращает сумму всех простых чисел, не превышающих n.
Пример. Вход n=18. Простые числа, не превышающие 18 — это 2, 3, 5, 7, 11, 13 и 17, поэтому функция должна вернуть их сумму, равную 58.
Вот мое решение, но тут то 2 не попадает,как это исправить?
class Program { static void Main(string[] args) { int n = 0; int b = 0; n = int.Parse(Console.ReadLine()); if (n > 0) { for (int i = 2; i < n; i++) { Console.WriteLine("i={0}", i); if (i % 2 != 0) { b += i; Console.WriteLine("Простое число {0}", i); } } Console.WriteLine("Cумма простих чисел равна {0}", b); } else Console.WriteLine("Не верные данные"); System.Console.ReadLine(); } }
Решение задачи: «Найти сумму простых чисел, которые не превышают заданное число N»
textual
Листинг программы
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace primeNumbers { class Program { static void Main(string[] args) { Console.Write("Enter any integer number: "); int number = int.Parse(Console.ReadLine()); List<int> primeNumbers = new List<int>(); for (int i = 2; i < number; i++) { if (IsPrime(i)) { primeNumbers.Add(i); } } Console.WriteLine("Prime numbers: {0}", string.Join(", ", primeNumbers)); int sum = CalculateSum(primeNumbers); Console.WriteLine("Sum is: {0}", sum); Console.ReadLine(); } static bool IsPrime(int number) { if (number < 2) { return false; } for (int i = 2; i < number; i++) { if (number % i == 0) { return false; } } return true; } static int CalculateSum(List<int> numbers) { int sum = 0; foreach (int number in numbers) { sum += number; } return sum; } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д