простое число

  • Автор темы kurzon
  • Дата начала
K

kurzon

#1
Задача: Определить простое число или ... ?
Простое число: http://ru.wikipedia.org/wiki/%D0%9F%D1%80%...%81%D0%BB%D0%BE
Памаги мене?

Пачиму кагда когда я вожу 1 либо 58, мене виводит true.
1 и 58 есть не простые числа, а оно пишет что простые.

Код:
static bool is_simple(int value,out bool bom)
{

int divider = 1;
if (value == 1) return bom = false;
else
{
if (value % 2 == 0) divider = 0;
while ((divider += 2) <= Math.Floor(Math.Sqrt(value)))
if ((value % divider == 0)) return bom = false;
return bom = true;
}
}
private void b_Check_Click(object sender, EventArgs e)
{
string str = this.t_Check.Text;
int value = Convert.ToInt32(str);
is_simple(value,out bom);

}
 
P

Pasha

#2
Для: kurzon
Конкретно этот кусок ничего никуда не пишет. Интресно, зачем функцию объявлять как bool и вводить при этом out-параметр.
 
K

kurzon

#3
Программа выводит.
Можеш сам скомпилировать и попробывать.
Код:
static bool is_simple(int value, out bool bom)
{
bom = false;
if (value == 1) return bom = false;
double divider = 1.0;

if (value % 2 == 0) divider = 0;
while ((divider += 2) <= Math.Sqrt(value))
if ((Convert.ToDouble(value)% divider == 0)) return bom = false;
return bom = true;
}
private void b_Check_Click(object sender, EventArgs e)
{
string str = this.t_Check.Text;
int value = Convert.ToInt32(str);
is_simple(value,out bom);
}