Простые числа

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

kurzon

#1
Эта программа определяет простое число или нет.
Кто может перевести этот код с С# на Visual С++.NET
Просто́е число́ — это натуральное число, большее единицы, имеющее ровно два натуральных делителя: 1 и само себя.
Код:
 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113
Код:
public static bool is_simple(int value, ref bool bom)
{
if (value == 1) return bom = false;
double divider = 1.0;

if (value % 2 == 0) divider = 0;
while ((divider += 2) <= Math.Sqrt(value))
if (value % divider == 0) return bom = false;
return bom = true;
}
public void b_Check_Click(object sender, EventArgs e)
{
string str = this.t_Check.Text;
int value = Convert.ToInt32(str);
bool bom=false;
is_simple(value, ref bom);
if (bom) label1.Text = "Просте число";
else label1.Text = "Не просте число";

}
 
G

gamecreator

#2
на .NET не переведу, а вот на обычный пожалуйста (по идее и на .NET должно работать)
только вот код для определения простого числа странный. написал свой вариант.

Код:
		public static bool is_simple(int value, bool* bom)
{
if (value == 1) return bom = false;
for(int i=0; i <= sqrt(value);i++)
if (value % divider == 0) return bom = false;
return bom = true;
}
public void b_Check_Click(object sender, EventArgs e)
{
string str = t_Check.Text;
int value = Convert.ToInt32(str);
bool bom=false;
is_simple(value, &bom);
if (bom) label1.Text = "Просте число";
else label1.Text = "Не просте число";

}
примерно так. обьекты не трогал (только this убрал, имхо можно и без него)
что делает второй метод? что такое t_Check? что за обьект label1?