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);
}
Простые числа ( С# )
Простое число: http://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D1%81%D1%82%D0%BE%D0%B5_%D1%87%D0%B8%D1%81%D0%BB%D0%BE
Памаги мене?
Пачиму кагда когда я вожу 1 либо 58, мене виводит true.
1 и 58 есть не простые числа, а оно пишет что простые.
Код:
Код:
if (value % 2 == 0) divider = 0;
А что значит сия строчечка? И почему бы в ней сразу не сделать return bom=false?
Цитата: wanja
Код:
if (value % 2 == 0) divider = 0;
А что значит сия строчечка? И почему бы в ней сразу не сделать return bom=false?
2 /2 =(0)остачи нету, но 2 ето простое число...
Будет не правильный ответ, если 2 бедет не простое число.
http://ru.wikipedia.org/wiki/2_%28%D1%87%D0%B8%D1%81%D0%BB%D0%BE%29
смысла в той строчке я не вижу.
далее, почему делитель увеличивается на 2?
почему останавливаеш процесс проверки, когда делитель станет больше корня числа?
и последнее, зачем return bom = что-то, проще return что-то, в крайнем случае return (bom=что-то)
Цитата: Lone Wolf
4%2=0 1024%2=0 остатка нет, но это жене простые числа...
смысла в той строчке я не вижу.
далее, почему делитель увеличивается на 2?
почему останавливаеш процесс проверки, когда делитель станет больше корня числа?
и последнее, зачем return bom = что-то, проще return что-то, в крайнем случае return (bom=что-то)
смысла в той строчке я не вижу.
далее, почему делитель увеличивается на 2?
почему останавливаеш процесс проверки, когда делитель станет больше корня числа?
и последнее, зачем return bom = что-то, проще return что-то, в крайнем случае return (bom=что-то)
Это точно правильно while ((divider += 2) <= Math.Floor(Math.Sqrt(value)))
Вмето чево мене памоч, ты сам хуже меня знаеш что такое простые чила.
http://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D1%81%D1%82%D0%BE%D0%B5_%D1%87%D0%B8%D1%81%D0%BB%D0%BE
http://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D0%BE%D1%80%D0%B8%D1%8F_%D1%87%D0%B8%D1%81%D0%B5%D0%BB
ну раз там все правильно, и ты лучше меня знаеш что-такое простые числа, то значит 1 и 58 тоже простые. и все-таки поставь скобки в возврате, поидее оно у тебя не успевает присваивать
проверяем если число еднницей, если нет то делим пока ненайдется число которое дает остачу 0, тоеть делится нацело. если этих чисел больше 1 то это составное число
Код:
#include <iostream.h>
#include <conio.h>
bool proverka (int chislo)
{
bool otvet=true;
int k=0;
if (chislo==1) otvet=false;
else {
for (int div = 2; div <= chislo; div++) {
if (chislo%div==0)
k++;
if (k>1) {
otvet=false; break;
}
}
}
return otvet;
}
int main()
{
int chislo;
cout << "vvedi chislo\n";
cin >> chislo;
if (proverka (chislo)==true)
cout <<"prostoe";
else cout << "sostavnoe";
getch();
return 0;
}
#include <conio.h>
bool proverka (int chislo)
{
bool otvet=true;
int k=0;
if (chislo==1) otvet=false;
else {
for (int div = 2; div <= chislo; div++) {
if (chislo%div==0)
k++;
if (k>1) {
otvet=false; break;
}
}
}
return otvet;
}
int main()
{
int chislo;
cout << "vvedi chislo\n";
cin >> chislo;
if (proverka (chislo)==true)
cout <<"prostoe";
else cout << "sostavnoe";
getch();
return 0;
}
Я уже сделал...
2.Если ты "уже сделал" тогда выложи код,так полагается...
3.Эта тема уже была и не раз.Что воспользоваться поиском по форуму не можешь ?
4.Почему в названии темы не указан язык программирования ?
Итого - нарушение - 10 баллов.[/COLOR]модератор