ISEbd-12_Osyagina_A.A._Simple/LAB02/3.1/Program.cs
2024-05-01 12:26:51 +04:00

40 lines
2.4 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Alg;
class Program // O(n^2)//Это объявление класса с именем "Program". Комментарий "// O(n^2)" указывает на то, что алгоритм внутри метода "FindPrimes" имеет временную сложность O(n^2), что означает квадратичную зависимость от размера входных данных.
{
static void Main(string[] args)//Это объявление метода Main, который является точкой входа в программу. Он принимает массив строк args в качестве аргументов.
{
int n1 = Convert.ToInt32(Console.ReadLine());//Прочитывает ввод пользователя с консоли и конвертирует его в целое число, которое сохраняется в переменной n1.
FindPrimes(n1);//Вызов метода FindPrimes с аргументом n1.
}
static void FindPrimes(int n)//Объявление метода FindPrimes, который принимает целочисленный аргумент n.
{
bool[] isPrime = new bool[n + 1];//Создание массива isPrime длиной n+1, который будет использоваться для отслеживания простых чисел.
for (int i = 2; i <= n; i++)//Начало цикла от 2 до n.
{
isPrime[i] = true;//Установка флага isPrimei в true, так как i является простым числом.
}
for (int i = 2; i <= n; i++)//Начало второго цикла от 2 до n.
{
if (isPrime[i] == true)//Проверка, является ли число i простым.
{
Console.Write(i + " ");//Вывод числа i на консоль.
for (int j = i * i; j <= n; j += i)//Цикл, который помечает значения, кратные i, как непростые.
{
isPrime[j] = false;//Установка флага isPrimej в false, так как j не является простым числом.
}
}
}
}
}