C++: Решето эратосфена на си. Простые числа

Ранее писал о простых числах. Нахождение простых чисел решетом эратосфена на C# тут сейчас же тоже самое на C++:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include "stdafx.h"
#include <math.h>
 
void erato(int number)
{
    bool *a = new bool[number];
    for (int i = 0; i < number; i++)
        a[i] = true;
    for (int i = 0; i < number; i++)
    {
        for (int i = 2; i < sqrt(number*1.0) + 1; ++i)
        {
            if (a[i])
            {
                for (int j = i * i; j < number; j += i)
                {
                    a[j] = false;
                }
            }
        }
    }
    for (int i = 2; i < number; i++)
    {
        if (a[i])
        printf("%d ", i);
    }
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    int n;
    scanf("%d", &n);
    erato(n);
    return 0;
}
#include "stdafx.h"
#include <math.h>

void erato(int number)
{
	bool *a = new bool[number];
	for (int i = 0; i < number; i++)
		a[i] = true;
	for (int i = 0; i < number; i++)
	{
		for (int i = 2; i < sqrt(number*1.0) + 1; ++i)
		{
			if (a[i])
			{
				for (int j = i * i; j < number; j += i)
				{
					a[j] = false;
				}
			}
		}
	}
	for (int i = 2; i < number; i++)
	{
		if (a[i])
		printf("%d ", i);
	}
}

int _tmain(int argc, _TCHAR* argv[])
{
	int n;
	scanf("%d", &n);
	erato(n);
	return 0;
}

4 Responses

    • Григорий 20.06.2012 / 13:28

      Не плюсы, а гибрид :| в плюсах для ввода\вывода используются операторы заголовочных файлов нового стандарта(iostream’ы всякие) cin\cout, что делает его более высокоуровневым, или нет?

Добавить комментарий