Найти сумму простых чисел, которые не превышают заданное число 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;
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.833 из 5
Похожие ответы