Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Простые числа ( С# )

6.5K
03 ноября 2007 года
kurzon
87 / / 28.09.2007
Задача: Определить простое число или ... ?
Простое число: 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 есть не простые числа, а оно пишет что простые.

Код:
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);
       
        }
247
03 ноября 2007 года
wanja
1.2K / / 03.02.2003
 
Код:
if (value % 2 == 0) divider = 0;

А что значит сия строчечка? И почему бы в ней сразу не сделать return bom=false?
6.5K
03 ноября 2007 года
kurzon
87 / / 28.09.2007
Цитата: 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

274
03 ноября 2007 года
Lone Wolf
1.3K / / 26.11.2006
4%2=0 1024%2=0 остатка нет, но это жене простые числа...
смысла в той строчке я не вижу.
далее, почему делитель увеличивается на 2?
почему останавливаеш процесс проверки, когда делитель станет больше корня числа?
и последнее, зачем return bom = что-то, проще return что-то, в крайнем случае return (bom=что-то)
6.5K
03 ноября 2007 года
kurzon
87 / / 28.09.2007
Цитата: Lone Wolf
4%2=0 1024%2=0 остатка нет, но это жене простые числа...
смысла в той строчке я не вижу.
далее, почему делитель увеличивается на 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

274
03 ноября 2007 года
Lone Wolf
1.3K / / 26.11.2006
ну раз там все правильно, и ты лучше меня знаеш что-такое простые числа, то значит 1 и 58 тоже простые. и все-таки поставь скобки в возврате, поидее оно у тебя не успевает присваивать
6.8K
03 ноября 2007 года
bolt90
80 / / 25.01.2007
поняно что любое число делится на 1
проверяем если число еднницей, если нет то делим пока ненайдется число которое дает остачу 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;
}
6.5K
03 ноября 2007 года
kurzon
87 / / 28.09.2007
Я уже сделал...
320
03 ноября 2007 года
m_Valery
1.0K / / 08.01.2007
[COLOR="Red"]1.Почему так много грамматических ошибок ?
2.Если ты "уже сделал" тогда выложи код,так полагается...
3.Эта тема уже была и не раз.Что воспользоваться поиском по форуму не можешь ?
4.Почему в названии темы не указан язык программирования ?
Итого - нарушение - 10 баллов.[/COLOR]
модератор
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог