Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.91
НаташаМеркулова
0 / 0 / 0
Регистрация: 14.06.2013
Сообщений: 5
#1

Описать функцию, возвращающую true, если натуральное число является простым, и false в противном случае - C++

14.06.2013, 12:51. Просмотров 1764. Ответов 21
Метки нет (Все метки)

Надо написать программу на c++
Описать функцию, возвращающую true, если натуральное число является простым, и false в противном случае. С её помощью найти количество простых чисел среди 10 целых положительных чисел
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.06.2013, 12:51
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Описать функцию, возвращающую true, если натуральное число является простым, и false в противном случае (C++):

Создать функцию Chet(k) логического типа,возвращающую True , если целый параметр К является чётным и False в противном случае - C++
Создать функцию Chet(k) логического типа,возвращающую True , если целый параметр К является чётным и False в противном случае. С помощью...

Описать функцию IsPrime(N) логического типа, возвращающую True, если целый параметр N (> 1) является простым числом - C++
Описать функцию IsPrime(N) логического типа, возвращающую True, если целый параметр N (> 1) является простым числом, и False в против-ном...

Программа, печатающая значение true, если указанное высказывание является истинным, и false в противном случае - C++
Составить программу,печатующую значение true,если указанное высказывание является истинным,и false -в противном случаею. Величина z...

Составить линейную программу, печатающую значение true, если указанное высказывание является истинным, и false - в противном случае. - C++
Помогите,пожалуйста,решить.... Составить линейную программу, печатающую значение true, если указанное высказывание является истинным, и...

Составить линейную программу, печатающую значение true, если указанное высказывание является истинным, и false - в противном случае. - C++
Составить линейную программу, печатающую значение true, если указанное высказывание является истинным, и false - в противном случае. Данная...

Составить линейную программу,печатающую значение true , если указанное высказывание является истинным,и false в противном случае - C++
Составить линейную программу,печатающую значение true , если указанное высказывание является истинным,и false—в противном случае: Сумма...

21
VEINHORN
543 / 92 / 22
Регистрация: 16.12.2011
Сообщений: 317
14.06.2013, 16:43 #2
В for измените кол-во чисел для проверки под свои нужды.)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<iostream>
#include<math.h>
using namespace std;
 
bool isSimpleNumber(int number) {
    bool flag = true;
    for(int i = 2;i <= (int)sqrt((double)number);i++)
        if(number % i == 0) {
            flag = false;
            break;
        }
    return flag;
}
 
int main() 
{   
    for(int i = 0;i < 100;i++)
        if(isSimpleNumber(i))
            std::cout << i << " ";
    system("pause");
    return 0;
}
0
MrGluck
Модератор
Эксперт CЭксперт С++
7491 / 4606 / 692
Регистрация: 29.11.2010
Сообщений: 12,592
14.06.2013, 16:57 #3
C++
1
2
3
4
5
6
7
bool isPrime (int n)
{
    for (int i = 2; i < sqrt(n); i++)
        if (n % i == 0)
            return false; // число делится, сл. непростое
    return true;
}
MCKLAS, простое число - prime. И незачем цикл break прерывать чтоб потом вернуть это же значение. Сразу возвращать надо.
0
Thinker
Эксперт С++
4228 / 2202 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
14.06.2013, 17:04 #4
MrGluck, как насчет числа 2?
0
VEINHORN
543 / 92 / 22
Регистрация: 16.12.2011
Сообщений: 317
14.06.2013, 17:04 #5
MrGluck, писалось на скорую руку..
0
Thinker
Эксперт С++
4228 / 2202 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
14.06.2013, 17:05 #6
Цитата Сообщение от MCKLAS Посмотреть сообщение
писалось на скорую руку..

Не по теме:

а зачем писать на скорую руку, вас же никто не торопит, гораздо интереснее писать красивые алгоритмы

0
VEINHORN
543 / 92 / 22
Регистрация: 16.12.2011
Сообщений: 317
14.06.2013, 17:07 #7
Thinker, если вам время позволяет сидеть и всем писать красивые алгоритмы, то это очень хорошо.)
0
MrGluck
Модератор
Эксперт CЭксперт С++
7491 / 4606 / 692
Регистрация: 29.11.2010
Сообщений: 12,592
14.06.2013, 17:08 #8
Цитата Сообщение от Thinker Посмотреть сообщение
MrGluck, как насчет числа 2?
так а что с ним не так?
2 - простое
вернет true не заходя в цикл
0
Thinker
Эксперт С++
4228 / 2202 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
14.06.2013, 17:09 #9
Цитата Сообщение от MCKLAS Посмотреть сообщение
Thinker, если вам время позволяет сидеть и всем писать красивые алгоритмы, то это очень хорошо.)

Не по теме:

времени нет писать всем алгоритмы, здесь же не благодельня, но если уж что-то писать, то с умом))

0
MrGluck
Модератор
Эксперт CЭксперт С++
7491 / 4606 / 692
Регистрация: 29.11.2010
Сообщений: 12,592
14.06.2013, 17:09 #10
MCKLAS, ничего, что по вашему коду человек учиться будет?
0
Thinker
Эксперт С++
4228 / 2202 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
14.06.2013, 17:09 #11
Цитата Сообщение от MrGluck Посмотреть сообщение
так а что с ним не так?
2 - простое
вернет true не заходя в цикл
уверены? судя по коду, не вернет
0
MrGluck
Модератор
Эксперт CЭксперт С++
7491 / 4606 / 692
Регистрация: 29.11.2010
Сообщений: 12,592
14.06.2013, 17:11 #12
кстати,
Цитата Сообщение от MrGluck Посмотреть сообщение
for (int i = 2; i < sqrt(n); i++)
<= sqrt(n) должно быть

Добавлено через 1 минуту
Thinker, почему это?
2 <= sqrt(2)
равнозначно
2 <= 1.41...
выходим из цикла
return true;
можете проверить, если не верится так
0
Thinker
Эксперт С++
4228 / 2202 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
14.06.2013, 17:12 #13
да, у вас корень, извиняюсь, не увидел. тогда лучше корень за цикл вынести и убрать из рассмотрения все четные числа, кроме 2
0
MrGluck
Модератор
Эксперт CЭксперт С++
7491 / 4606 / 692
Регистрация: 29.11.2010
Сообщений: 12,592
14.06.2013, 17:13 #14
И заклепку еще на 1 добавить
C++
1
2
3
4
5
6
7
bool isPrime (int n)
{
    for (int i = 2; i <= sqrt(n); i++)
        if (n % i == 0)
            return false; // число делится, сл. непростое
    return n > 1;
}
0
VEINHORN
543 / 92 / 22
Регистрация: 16.12.2011
Сообщений: 317
14.06.2013, 17:14 #15
MrGluck, если человек будет учиться он может подправить и улучшить код.)
Прочитав это
return (n & 1 && n > 1) || n == 2;
вопроситель сразу все поймет.)
0
14.06.2013, 17:14
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.06.2013, 17:14
Привет! Вот еще темы с ответами:

Если число является простым, то функция возвращает true, если не является false - C++
Напишите функцию, получающую целое число N(&gt;0). Если оно является простым, то функция возвращает true, если не является false. #include...

Разработать функцию, которая возвращает True, если полученные значения могут быть сторонами треугольника, False – в противном случае - C++
Разработайте функцию, которая получает три вещественных параметра, возвращает в качестве своего результата булевское значение True, если...

Написать функцию, которая возвращает true, если параметр является алфавитно-цифровым и false в ином случае. - C++
Нужно написать функцию, которая возвращает истину, если переданный параметр является алфавитно - цифровым и ложь, если не является. (не...

Вывести на консоль true, если точка принадлежит заданным областям, и false - в противном случае - C++
Составить программу которая печатает true если точка с координатами (x,y) принадлежит заданным закрашенным (заштрихованным) областям и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru