Member 12972266 Ответов: 2

Найти простые числа с помощью сита Эратосфена от А до в


привет
я хочу найти простые числа в длительности [a,b].
Пожалуйста, направь меня
большое спасибо.

i want to find prime numbers in [a,b] duration.


Что я уже пробовал:

i want to find prime numbers in [a,b] duration.


этот код находит простые числа в [0, topcandidate]

int FindPrimeUsingSieveOfEratosthenes(int topCandidate = 1000000)
{
	int totalCount = 0;
	bool *ix = (bool*)(malloc(topCandidate * sizeof(bool)));

	for(int i = 2 ; i <= topCandidate ; i++)
	ix[i] = true;
	ix[0] = ix[1] = false;

	/* Mark all the non-primes */
	int thisFactor = 2;
	int lastSquare = 0;
	int thisSquare = 0;

	while (thisFactor * thisFactor <= topCandidate)
	{
		/* Mark the multiples of this factor */
		int mark = thisFactor + thisFactor;
		while (mark <= topCandidate)
		{
			ix[mark] = false;
			mark += thisFactor;

		}

		/* Print the proven primes so far */
		thisSquare = thisFactor * thisFactor;
		for (; lastSquare < thisSquare; lastSquare++)
		{
			if (ix[lastSquare]) totalCount++;

		}

		/* Set thisfactor to next prime */
		thisFactor++;
		while (!ix[thisFactor]) { thisFactor++; }

	}
	/* Print the remaining primes */
	for (; lastSquare <= topCandidate; lastSquare++)
	{
		if (ix[lastSquare]) { totalCount++; }

	}
	return totalCount;
}






помоги мне что-нибудь изменить ... в этом коде

NotPolitcallyCorrect

Это все еще твое домашнее задание.

Member 12972266

Я специалист по электротехнике .
это не мое домашнее задание!
я люблю математику ...

PIEBALDconsult

Я действительно не понимаю вопроса.
Алгоритм сита требует, чтобы вы начинали с самого начала, а не с середины.
Можно расширить сито - если, скажем, у вас есть сито от 1 до 100 и вы хотите расширить его до 200, вы можете использовать простые числа, которые вы уже нашли, а затем начать с 101.
Но я не вижу способа просто начать с 101 и перейти к 200, не имея набора простых чисел, которые предшествуют этому диапазону.
Вы даже можете иметь базу данных простых чисел, если хотите.

NotPolitcallyCorrect

Ну и что? Какое это имеет отношение к делу?

Member 12972266

спасибо
ее детально ответить

2 Ответов

Рейтинг:
2

Patrice T

Мы не делаем вашу домашнюю работу.
Домашнее задание предназначено не для того, чтобы проверить ваши навыки просить других людей сделать вашу работу, оно предназначено для того, чтобы заставить вас думать и помочь вашему учителю проверить ваше понимание курсов, которые вы прошли, а также проблем, с которыми вы сталкиваетесь при их применении.
Любая ваша неудача поможет учителю выявить ваши слабости и наметить меры по их исправлению.
Итак, попробуйте, перечитайте свои уроки и приступайте к работе. Если вы застряли на конкретной проблеме, покажите свой код и объясните эту точную проблему, мы можем помочь.

Как программист, ваша задача-создавать алгоритмы это решает конкретные проблемы, и вы не можете полагаться на кого-то другого, чтобы вечно делать это за вас, поэтому есть время, когда вам придется научиться этому. И чем скорее, тем лучше.
Когда вы просто просите решение, это все равно что пытаться научиться водить машину, обучая кого-то другого.
Создание алгоритма-это в основном поиск математики и необходимая адаптация к вашей реальной задаче.


Member 12972266

если вы не знаете решения, то лучше промолчать!
Мне жаль тебя !
Спасибо!

Patrice T

Если вы знаете ответ, не задавайте вопросов.
Если ваш код не работает, укажите проблему.

Member 12972266

Я не знаю ответа.
Я здесь, чтобы найти ответ!

Я поставил свой код ... и изложил свою проблему ... если вы думаете...!!!!!!!!

Patrice T

"этот код находит простые числа в [0, topcandidate]"
это не вопрос и не проблема.

Рейтинг:
0

OriginalGriff

Как мы уже говорили вам, когда вы спросили об этом несколько часов назад: Найти простое число с помощью сита Аткинса, оптимизированного по длительности [a, b] [^]
Мы здесь не для того, чтобы делать тебе домашнее задание.
И в дополнение к тому, что вам сказали, вы понимаете, что ваш наставник хорошо знает подобные сайты, так что привлечение кого-то другого для выполнения вашей работы в любом случае приведет только к "провалу"?


Member 12972266

во второй раз!
это не моя домашняя работа!

OriginalGriff

У тебя есть работа - делать домашние задания? Насколько хорошо он платит?

Member 12972266

если вы не знаете решения, то лучше промолчать!
Мне жаль тебя !
Спасибо!

PIEBALDconsult

ГМ, мне тоже нравится делать сита в качестве упражнений.

OriginalGriff

Проверьте его другие вопросы...: смех:

PIEBALDconsult

Я так и сделал, и то и другое, на мой взгляд, в порядке. У меня нет проблем с этими вопросами. Правда, в его отношении чего-то не хватает.