Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
jock
2 / 2 / 0
Регистрация: 29.10.2011
Сообщений: 38
#1

Простые числа - C++

19.11.2011, 16:41. Просмотров 873. Ответов 12
Метки нет (Все метки)

Проверить является ли введеное число простым или нет.
 Комментарий модератора 
Запрещено создавать темы с бессмысленными названиями вроде "Помогите!", "Вопрос" и т.п.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.11.2011, 16:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Простые числа (C++):

Найти все трехзначные простые числа. Определить функцию позволяющую распознавать простые числа - C++
Найти все трехзначные простые числа. Определить функцию позволяющую распознавать простые числа. Простые числа это когда они делятся только...

Задача про простые числа. Выпишите все простые числа, находящиеся в интервале между а и б - C++
#include <stdio.h> #include <iostream> #include <conio.h> #include <math.h> using std::cout; using std::cin; using...

Даны натуральные числа a,b(a<= Ь). Получить все простые числа р, удовлетворяющие неравенствам a<= р<= b. - C++
Даны натуральные числа a,b(a&lt;= Ь). Получить все простые числа р, удовлетворяющие неравенствам a&lt;= р&lt;= b. Решите на С++. Буду очень...

Даны целые числа р и q. Получить все делители числа q, взаимно простые с р. - C++
Даны целые числа р и q. Получить все делители числа q, взаимно простые с р. Решите на С++. Заранее спасибо!

Найти числа-близнецы: простые числа разность между которыми равна 2 - C++
Дано натуральное число n. Среди чисел n, n + 1, …, 2n найти все числа-близнецы: простые числа, разность между которыми равна 2.

Даны натуральные числа p и q. Получить все делители числа q, взаимно простые к p - C++
Даны натуральные числа p и q. Получить все делители числа q , взаимно простые к p. помогите сделать на с++

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
DenCHS200
32 / 32 / 1
Регистрация: 07.10.2011
Сообщений: 117
19.11.2011, 17:26 #2
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 <conio.h>
using namespace std;
void main()
{
    unsigned int a,b,i;
    cout<<"Enter number "<<endl;
    cin>>a;
    bool sloznoe=false;
    for(i=2;i<a;i++){//считаем с 2х, т к 0, 1, 2- простые числа
        if(a%i==0){
            sloznoe=true;//если хоть олин раз поделилось на меньшее число без остатка, то значит число сложное
                goto e;// прервём цикл, нет смысла дальше считать, уже выяснили }
    }
 
e:;
        if(sloznoe==true)
            cout<<"Number is difficult"<<endl;// сложное
        else
            cout<<"Number is easy"<<endl;// простое
    getch();
}
jock
2 / 2 / 0
Регистрация: 29.10.2011
Сообщений: 38
19.11.2011, 17:35  [ТС] #3
спасибо
DenCHS200
32 / 32 / 1
Регистрация: 07.10.2011
Сообщений: 117
19.11.2011, 17:42 #4
Незачто
amor1k
Студент
147 / 147 / 24
Регистрация: 18.01.2011
Сообщений: 469
19.11.2011, 18:21 #5
C++
1
e:;
вроде ";" здесь не нужна, и вы потеряли одну закрывающую скобку. Во всяком случае такой код вы выложили
jock
2 / 2 / 0
Регистрация: 29.10.2011
Сообщений: 38
19.11.2011, 21:33  [ТС] #6
Кстати, я заменил на оператор break;
C++
1
goto e;
Dani
1393 / 637 / 57
Регистрация: 11.08.2011
Сообщений: 2,282
Записей в блоге: 2
Завершенные тесты: 1
19.11.2011, 22:51 #7
Цитата Сообщение от DenCHS200 Посмотреть сообщение
/считаем с 2х, т к 0, 1, 2- простые числа
1 - не простое число.

Добавлено через 5 минут
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>
 
bool isBool (int n)
{
    if (n==2) return true;
 
    for (int i=2; i<=int(sqrt(n*1.0))+1; ++i)
        if (n % i ==0) return false;
    return true;
}
 
 
 
int main()
{
    int n;
    std:: cin >> n;
    if (n==1) std:: cout << "1 - Not prime, Not composite \n";
    else std:: cout <<(isBool(n) ? "Prime" : "Composite") <<"\n";
    system ("pause");
    return 0;
}
Я бы писал так. К тому же метки не нужно использовать.
Xind
275 / 148 / 7
Регистрация: 05.11.2011
Сообщений: 425
Записей в блоге: 1
19.11.2011, 22:53 #8
Цитата Сообщение от Dani Посмотреть сообщение
1 - не простое число.
Стоит еще добавить, чтобы человек дальше понимал простые числа
Цитата Сообщение от http://ru.wikipedia.org/wiki/1_(число)
В настоящее время в математике принято не относить единицу ни к простым, ни к составным числам, так как это нарушает важную для теории чисел единственность разложения на множители. Последним из профессиональных математиков, кто рассматривал 1 как простое число, был Анри Лебег в 1899 году. При этом некоторые совершают подобную ошибку и поныне: так, Карл Саган включил 1 в список простых чисел в своей книге «Контакт», вышедшей в 1985 году.
Thinker
Эксперт C++
4225 / 2199 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
19.11.2011, 22:54 #9
Dani, условие можно таким сделать
i<=int(sqrt(n*1.0)),
а еще лучше корень до цикла вычислить, чтобы много раз одно и тоже не вычислять
Dani
1393 / 637 / 57
Регистрация: 11.08.2011
Сообщений: 2,282
Записей в блоге: 2
Завершенные тесты: 1
19.11.2011, 22:57 #10
Цитата Сообщение от Thinker Посмотреть сообщение
i<=int(sqrt(n*1.0)),
а еще лучше корень до цикла вычислить, чтобы много раз одно и тоже не вычислять
ну это конечно, но врядли тут требуется.

Цитата Сообщение от Xind Посмотреть сообщение
Стоит еще добавить, чтобы человек дальше понимал простые числа
Можно так объяснить: по определению, у простого числа 2 делителя - 1 и само число. Но т.к. 1 и имеет 1 делитель (только 1), то 1 - не простое. По определению составное число - число, имеющее 3 и более делителей - 1, само число и другие делители. Т.к. у 1 есть только 1 делитель, а не 3 и более, то это число не составное.
DenCHS200
32 / 32 / 1
Регистрация: 07.10.2011
Сообщений: 117
19.11.2011, 22:57 #11
Нравится мне с метками- пишу с метками. А то что скобку закрывающую потерял - это мистика, т. к. у меня в листинге всё на месте!
Thinker
Эксперт C++
4225 / 2199 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
19.11.2011, 23:04 #12
У простых чисел есть четкое определение. Целое число называется простым, если оно имеет ровно два делителя. При этом в качестве делителей рассматриваются только натуральные числа.

Цитата Сообщение от Dani Посмотреть сообщение
ну это конечно, но врядли тут требуется.

Не по теме:

Dani, хороший стиль программирования в крови должен сидеть Даже пустяшную задачу рука не поднимется коряво написать

Dani
19.11.2011, 23:05     Простые числа
  #13

Не по теме:

Никто не возражает

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.11.2011, 23:05
Привет! Вот еще темы с ответами:

Даны целые числа р и q. Получить все делители числа q, взаимно простые с р - C++
Получить все делители числа q, взаимно простые с р.

Даны натуральные числа p и q. Получить все делители числа q, взаимно простые к p. - C++
Даны натуральные числа p и q. Получить все делители числа q , взаимно простые к p.

Найти простые числа с суммой цифр меньше заданного числа - C++
нужно написать прогу, можно использовать только циклы. Если можно, с объяснениями. Условие: Найти n первых простых чисел, сумма цифр у...

Найти сверхпростые числа: простые числа, номера которых являются простыми числами. - C++
Привет родные форумчане! Пожалуйста помогите решить буду особенно благодарен если напишите код с комментариями что как работает, заранее...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
19.11.2011, 23:05
Ответ Создать тему
Опции темы

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