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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.01.2012, 22:37   #1
Syk
 
Регистрация: 06.01.2012
Сообщений: 6
По умолчанию Алгоритм нахождения чисел близнецов(С++)

Есть алгоритм нахождения чисел близнецов(два нечетных простых числа, разность которых равна 2). Никак не могу понять, как он работает. Поясните, пожалуйста.
Код:
bool isSimple( int value)

{
int k,d,halfk,in;

k =0;
halfk = value/2 +1;
for(d =2 ;d <halfk; d++)
{
  in = value/d;
  if( (in * d) == value){
	  k++;
  }
}
if (k >0) return false;
else return true;

}

Последний раз редактировалось alex_fcsm; 10.01.2012 в 18:24.
Syk вне форума Ответить с цитированием
Старый 06.01.2012, 22:57   #2
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Цитата:
Есть алгоритм нахождения чисел близнецов
по моему это просто проверка на простоту только какая то муторная
Код:
bool isSimple( int value)
{
int k,d,halfk,in;
k =0;    // количество делителей
halfk = value/2 +1; // половинка от K; хотя я бы взял sqrt
for(d =2 ;d <halfk; d++) // в цикле от  2 до половинки K
{
in = value/d; // получаем результат целочисленного деления нашего числа на d (in)
if( (in * d) == value) // если in умножить на d равно наше число то ; тут  бы просто if (in % d ==0)
{ 
k++; // увеличиваем число делителей на 1;  хотя я бы сразу вернул false
}
}
if (k >0) return false; // если количество делителей >0 вернем false
else return true; // иначе  вернем true
}
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"

Последний раз редактировалось Mad_Cat; 06.01.2012 в 23:09.
Mad_Cat вне форума Ответить с цитированием
Старый 06.01.2012, 23:01   #3
Syk
 
Регистрация: 06.01.2012
Сообщений: 6
По умолчанию

Mad_Cat, а если не сложно, можешь объяснить словами, как проверка проходит. Пожалуйста.
Спасибо.

Последний раз редактировалось Syk; 06.01.2012 в 23:21.
Syk вне форума Ответить с цитированием
Старый 06.01.2012, 23:35   #4
Syk
 
Регистрация: 06.01.2012
Сообщений: 6
По умолчанию

Mad_Cat, а можно задать совсем глупый вопрос:
это класс -bool isSimple( int value) Или что это?
Syk вне форума Ответить с цитированием
Старый 06.01.2012, 23:39   #5
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Цитата:
это класс -bool isSimple( int value)
честно говоря я в формулировках С++ не копенгаген , но это функция ИМХО
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 10.01.2012, 18:22   #6
Syk
 
Регистрация: 06.01.2012
Сообщений: 6
По умолчанию

Mad_Cat, можете сказать, за что отвечает эта часть кода?
Код:
void MainForm::onCalcSlot()
{   QString out;
	start_ = spinBox->value();
	end_ = spinBox_2->value();
	textEdit->clear();
	last_=0; //эти 2 переменные и отвечают за "числа близнецы" 
	last_pr = 0;
	for(int i = start_; i<=end_; i++)
	{
		if (isSimple(i))
		{     
			  if (i-last_==2)
			  {
				  out = out.setNum(last_);
				  textEdit->append(out);
				  out = out.setNum(i);
				  textEdit->append(out);
				  textEdit->append("-----------------"); //что добавляется в конец строки("-----------------")
				   
				  
			  }
			  if ((i-last_pr == 2)and (last_pr != 0) and (last_ != last_pr))
			  {
				 // âûâîä  last_pr è i
				  out = out.setNum(last_pr);
				  textEdit->append(out);
				  out = out.setNum(i);
				  textEdit->append(out);
				  textEdit->append("-----------------");
			  }
			  last_pr = last_;
			  last_ = i;
			  
		}
	}
}
Syk вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вот не работает программа для вычисления чисел-близнецов hon Общие вопросы Delphi 10 25.09.2011 16:27
Алгоритм нахождения простых чисел Pein95 C# (си шарп) 1 03.08.2011 03:50
алгоритм нахождения fist001 C++ Builder 2 28.05.2011 21:30
алгоритм нахождения простых чисел Pein95 Паскаль, Turbo Pascal, PascalABC.NET 2 07.12.2010 17:39
Алгоритм нахождения простых чисел ardor Помощь студентам 1 20.11.2009 00:00