Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.03.2016, 01:22   #1
forsazh12
 
Регистрация: 15.01.2016
Сообщений: 4
По умолчанию Нахождение простых чисел через решето Эратосфена (Си)

Здравствуйте, помогите пожалуйста с курсовой. Необходимо найти и вывести на экран все простые числа на указанном промежутке с помощью решета Эратосфена. У меня есть наработки кода, который находит и выводит простые числа на промежутке от 2 до b. Решето Эратосфена подразумевает под собой нахождение простых чисел от первого простого, то есть от 2. Я примерно понимаю, что нужно создать два динамических массива, в одном будут содержаться все найденные простые числа от 2 до b, а во втором будут числа от 1 до b, и потом их сравнивать. Если совпадут два числа, то выводить, если не совпадут, пропускать. Только я не знаю как это в коде организовать.

Вот наработки кода:

Код:
// ConsoleApplication13.cpp: определяет точку входа для консольного приложения.
//

#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>


void main()
{
	long int start, end, i, j;
	printf("Vvedite promegutok poiska prostyh chisel\n");
	scanf("%d%d", &start, &end);
	double *B = (double*)calloc(end, sizeof(double));
	double *A = (double*)calloc(end, sizeof(double));
	for (i = 0; i <= end; i++)
		A[i] = 1;
	// "start" и "end" - это промежуток, на котором ведется поиск простых чисел
	for (i = ((start > 1) ? start : 2); i*i <= end; i++){
		if (A[i] == 1)
		{
			for (j = i*i; j <= end; j += i)
				A[j] = 0;
		}
		for (i = ((start > 1) ? start : 2); i <= end; i++)
		if (A[i] == 1)
			printf("%d\t", i);
		getch();
	}
}
forsazh12 вне форума Ответить с цитированием
Старый 13.03.2016, 04:45   #2
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

Блин, не поверишь! Есть такой секретный сайт, на котором забанили всю школоту... тока тсссссс!

Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 13.03.2016, 09:52   #3
forsazh12
 
Регистрация: 15.01.2016
Сообщений: 4
По умолчанию

Большое спасибо, капитан очевидность! Такой хороший сайт! Вот только знакОм я с ним уже давненько и смотрел там информацию по этой теме. Неужели нельзя просто помочь?
forsazh12 вне форума Ответить с цитированием
Старый 13.03.2016, 12:49   #4
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

Цитата:
Неужели нельзя просто помочь?
А какой ты помощи хочешь? У тебя пальцы сломаны? Не можешь запрос на гугол отправить и потом скопипастить себе результаты? Там же есть ссылки прямо на готовый код!

Сделать это за тебя? Какой смысл?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решето Эратосфена Evaeva123 Помощь студентам 2 28.04.2015 17:38
Решето Эратосфена ezhidudek Помощь студентам 3 19.03.2013 22:49
решето эратосфена Выхухольxxx Общие вопросы Delphi 1 06.06.2011 13:20
Решето Эратосфена cbuilderx Помощь студентам 1 25.10.2010 18:44