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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.12.2011, 13:16   #1
(lol)
Новичок
Джуниор
 
Регистрация: 16.12.2011
Сообщений: 2
По умолчанию определить простые числа в с++

Здравствуйте.. нужно написать код для определения простых чисел, таких как 2,3,5,7,11,15,17,19 и тд.. программа должна найти их из заданного пользователем промежутка, например, от 50 до 75. затем нужно вычислить среднее арифметическое простых чисел из этого промежутка, минимальное и максимальное простое число. подскажите, как это можно сделать?
(lol) вне форума Ответить с цитированием
Старый 17.12.2011, 13:33   #2
Lasur
Форумчанин
 
Аватар для Lasur
 
Регистрация: 13.10.2011
Сообщений: 143
По умолчанию

Вы не знаете язык или алгоритм?
Все имена, фамилии, ники, даты и события упоминаемые в моих постах, являются вымышленными. Все совпадения с реально существующими - случайны.
Lasur вне форума Ответить с цитированием
Старый 17.12.2011, 21:57   #3
(lol)
Новичок
Джуниор
 
Регистрация: 16.12.2011
Сообщений: 2
По умолчанию

я сейчас изучаю с++ в университете, не могу разобраться с алгоритмом..
(lol) вне форума Ответить с цитированием
Старый 18.12.2011, 02:32   #4
Lasur
Форумчанин
 
Аватар для Lasur
 
Регистрация: 13.10.2011
Сообщений: 143
По умолчанию

Что касается второй части задачи:
нахождение максимального и минимального элемента массива делается следующим образом
Код:
//Вначале Min и Max считаются равными первому елементу массива.
int Min = Arr[0];
int Max = Arr[0];
//Идем по все элементам массива кроме первого
for (x = 1; x < Size; x++)
{
	//Если этот элемент больше текущего предпологаемого максимума, предпологаем, что максимум - он.
	if (Arr[x] > Max) Max = Arr[x];
	//Если этот элемент меньше текущего предпологаемого минимума, предпологаем, что минимум - он.
	if (Arr[x] < Min) Min = Arr[x];
}
где Length длинна массива Arr.
Нахождение среднего арифметического: код писать не буду, суть в том, чтобы просуммировать все элементы массива (для этого используем вспомогательную переменную, идем по всем элементам массива, каждые элемент прибавляем к переменной), потом поделить на их количество, то есть на длину массива.
Что касается первой части:
Здесь, скорее всего лучшим вариантом будет решето Эратосфена но перебор начиная не от двух, а от [левая граница интервала/2], например от 50.
Все имена, фамилии, ники, даты и события упоминаемые в моих постах, являются вымышленными. Все совпадения с реально существующими - случайны.

Последний раз редактировалось Lasur; 18.12.2011 в 02:34.
Lasur вне форума Ответить с цитированием
Старый 18.12.2011, 03:16   #5
viron
Форумчанин
 
Аватар для viron
 
Регистрация: 02.12.2011
Сообщений: 110
По умолчанию

Цитата:
нужно написать код для определения простых чисел, таких как 2,3,5,7,11,15,17,19 и тд.. программа должна найти их из заданного пользователем промежутка, например, от 50 до 75.
Код:
#include "stdafx.h"
#include "cmath"
using namespace std;

bool Prostoe(const int number);

int _tmain(int argc, _TCHAR* argv[])
{
	int numMin, numMax;

	cout << "Enter numMin: ";
	cin >> numMin;

	cout << "Enter numMax: ";
	cin >> numMax;

	for (int j=numMin; j<=numMax; j++)
		if (Prostoe(j))
			cout << j << " ";


	cin.get();
	cin.get();
	return 0;
}

// true - число number простое, false - обычное
bool Prostoe(const int number)
{
	for (int i=2; i <= sqrtf(number); i++)
		if (number % i == 0)
			return false;

	return true;
}

Последний раз редактировалось viron; 18.12.2011 в 03:18.
viron вне форума Ответить с цитированием
Старый 18.12.2011, 06:55   #6
Lasur
Форумчанин
 
Аватар для Lasur
 
Регистрация: 13.10.2011
Сообщений: 143
По умолчанию

Viron, вам не кажется что для больших промежутков больших чисел, ваш алгоритм будет работать намного медленнее решета Эратосфена?
Все имена, фамилии, ники, даты и события упоминаемые в моих постах, являются вымышленными. Все совпадения с реально существующими - случайны.
Lasur вне форума Ответить с цитированием
Старый 18.12.2011, 21:13   #7
viron
Форумчанин
 
Аватар для viron
 
Регистрация: 02.12.2011
Сообщений: 110
По умолчанию

Цитата:
Viron, вам не кажется что для больших промежутков больших чисел, ваш алгоритм будет работать намного медленнее решета Эратосфена?
Конечно, если здесь важна скорость, то лучше использовать решето Эрастофена.
viron вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
простые числа Koko Shanel' Помощь студентам 2 08.09.2010 01:13
определить все простые числа не превосходящие заданного N QBasic werus Помощь студентам 4 23.04.2009 13:32
Простые числа Verochka Помощь студентам 14 02.12.2008 20:30
простые числа Акашаев Нурлан Паскаль, Turbo Pascal, PascalABC.NET 2 05.12.2007 12:23