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

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

Войти
Регистрация
Восстановить пароль
 
 
vpnwz151
10 / 11 / 1
Регистрация: 03.11.2011
Сообщений: 129
#1

Помогите решить проблемку - C++

15.11.2011, 04:46. Просмотров 631. Ответов 17
Метки нет (Все метки)

Дано натуральное число. Определить оно простое. Число называется простым, если оно не имеет других делителей, кроме 1 и самого себя.

Как написать кодик:
или писать через for то как помогите плиз!

C++
1
2
3
int y;
    cout<<"Vedit` proste chislo: "; cin>>y;
if (y < 0 || y/1 == y && y/y == 1 )
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.11.2011, 04:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Помогите решить проблемку (C++):

Системы классов. Помогите разрешить небольшую проблемку. - C++
В программе дается 3 действия на выбор. Надо сделать так, чтобы при вводе чисел f&gt;3 программа возвращалась снова в меню выбора. ..... ...

Помогите решить ... - C++
Помогите решить 2-е задачи ... или дайте алгоритм решения ... 1)Составьте программу, которая бы по году рождения определяла знак по...

помогите решить... - C++
помогите, пожалуйста, решить вот такую задачу. думаю для здешних обитателей это как орешки щелкать, но я ничего в этом не понимаю. &quot;Найти...

Помогите решить - C++
ЭТО ЗАДАНИЕ Position of &quot;-1&quot;. In the given NxM matrix find the LAST position of the minus one(-1). If it will be no &quot;-1&quot; value in...

Помогите решить в С++ - C++
Array18. Дан целочисленный массив размера N. Определить максимальное количество его одинаковых элементов. Matrix18. Дана целочисленная...

помогите решить - C++
1- составить прогу для решения уравнения см фото. примерное решение ,но тут проблема в уравнении int main() { float a, b,...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
mimicria
return (true);
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,345
15.11.2011, 08:12 #2
Самый простой способ: перебрать все делители от 2 до корня от числа, высчитывая остаток от деления.

Добавлено через 7 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
bool IsSimple(int N)
{
 int To = (int)sqrt(N);
 for (int i=2; i<=To; i++)
 {
  if (!(N%i))
  {
   return false;
  }
 }
 return true;
}
 
int main(int argc, char* argv[])
{
 cout << "Enter N: ";
 int N; cin >> N;
 if (IsSimple(N)) cout << "Simple" << endl;
 else cout << "NOT simple" << endl;
 system("pause");
 return 0;
}
vpnwz151
10 / 11 / 1
Регистрация: 03.11.2011
Сообщений: 129
15.11.2011, 15:24  [ТС] #3
может есть какой то простой способ?
Вася1q
21 / 21 / 0
Регистрация: 13.09.2011
Сообщений: 311
15.11.2011, 17:35 #4
Вот самый простой способ))) зацени!
C++
1
2
3
4
5
6
7
#include <iostream>
using namespace std;
int main(void)
{
cout << "\nProstie 4isla 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53\n";
system("pause");
}
vpnwz151
10 / 11 / 1
Регистрация: 03.11.2011
Сообщений: 129
15.11.2011, 17:40  [ТС] #5
ахаха смешно то как))
Вася1q
21 / 21 / 0
Регистрация: 13.09.2011
Сообщений: 311
15.11.2011, 17:42 #6
Можное еще сделать чтобы они по очереди на экране всплывали))
Thinker
Эксперт C++
4225 / 2199 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
15.11.2011, 17:53 #7
Цитата Сообщение от vpnwz151 Посмотреть сообщение
Число называется простым, если оно не имеет других делителей, кроме 1 и самого себя.
Поправлю немного. Под ваше определение 1 тоже попадает, а это не простое число.

Цитата Сообщение от vpnwz151 Посмотреть сообщение
может есть какой то простой способ?
Это и есть самый простой способ, дающий точный ответ -"ДА" или "НЕТ". Алгоритм можно, конечно модернизировать, проверять только нечетные числа (предварительно проверив двойку), но от этого он проще не станет. Есть вероятностные алгоритмы, но они требуют знание азов теории чисел. Так что проще алгоритма нет, некуда проще.
vpnwz151
10 / 11 / 1
Регистрация: 03.11.2011
Сообщений: 129
15.11.2011, 18:03  [ТС] #8
надо прорисовать с клавиатуры число или что-то я не доганяю эту задачю
какой из этих правильный?

Добавлено через 3 минуты
Числа 2 3 5 7 11 13 17 19 23 29 31 37 41 43
как тогда должен выглядит код?
если вводом с клавиатуры
и с проверкой я так понимаю должен быть цыкл for или я ошибаюсь?
alkagolik
Заблокирован
15.11.2011, 18:03 #9
Цитата Сообщение от vpnwz151 Посмотреть сообщение
надо прорисовать с клавиатуры число или что-то я не доганяю эту задачю
какой из этих правильный?
простые числа вам поставленая задача определить является ли число (введенное с клавиатуры) простым или нет. Так вот на сегодняший день единственный точный алгоритм это перебор. все остальные имеют вероятность дать ложный результат.
Thinker
Эксперт C++
4225 / 2199 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
15.11.2011, 18:07 #10
vpnwz151, вы что, алгоритм от сарказма (в #4) отличить не можете? пользуйтесь программой из поста 2 и радуйтесь жизни.
vpnwz151
10 / 11 / 1
Регистрация: 03.11.2011
Сообщений: 129
15.11.2011, 18:12  [ТС] #11
Точней проверять каждое число? через if ?
Или я ошибаюсь?

Добавлено через 4 минуты
Цитата Сообщение от Thinker Посмотреть сообщение
vpnwz151, вы что, алгоритм от сарказма (в #4) отличить не можете? пользуйтесь программой из поста 2 и радуйтесь жизни.
Где ошибка при сложение такого кода?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <iostream>
using namespace std;
void main()
 
{
 
    bool IsSimple(int N)
{
 int To = (int)sqrt(N);
 for (int i=2; i<=To; i++)
 {
  if (!(N%i))
  {
   return false;
  }
 }
 return true;
}
 
int main(int argc, char* argv[])
{
 cout << "Enter N: ";
 int N; cin >> N;
 if (IsSimple(N)) cout << "Simple" << endl;
 else cout << "NOT simple" << endl;
 system("pause");
 return 0;
}
 
 
 
 
 
 
 
}
Thinker
Эксперт C++
4225 / 2199 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
15.11.2011, 18:13 #12
Цитата Сообщение от vpnwz151 Посмотреть сообщение
Где ошибка при сложение такого кода?
там нет ошибок.
vpnwz151
10 / 11 / 1
Регистрация: 03.11.2011
Сообщений: 129
15.11.2011, 18:18  [ТС] #13
но все же при компиляция выкидывает 6 ошибок!
visual studio 2010
Thinker
Эксперт C++
4225 / 2199 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
15.11.2011, 18:25 #14
попробуйте так:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include<stdio.h>
#include<math.h>
#include<conio.h>
 
int Prime(long a)
{
   long i = 2;
   a = labs(a);
   if (a == 0 || a == 1)
      return 0;
   while (i*i <= a && a%i)
      i++;
   return i*i >= a;
}
 
int main()
{
   long a;
   scanf("%ld", &a);
   printf("%s\n", Prime(a) ? "prime" : "not prime");
   getch();
   return 0;
}
vpnwz151
10 / 11 / 1
Регистрация: 03.11.2011
Сообщений: 129
15.11.2011, 18:52  [ТС] #15
а если така поступить?

C++
1
2
3
4
5
6
7
8
        int a;
        cout<<"namber chislo: "; cin>>a;
        if (a!=0 && a != 1)
 
            cout<<"proste"<<endl;
 
        else 
            cout<<"ne proste"<<endl;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.11.2011, 18:52
Привет! Вот еще темы с ответами:

помогите решить)) - C++
привет всем! помогите решить (x mod3)-1; я новичек и еще много не доганяю если можно распишите с коментариями спс.

помогите решить - C++
Написать и протестировать программу STREND (str 1,str 2) которая возвращает 1,если строка str 1 расположена в конце строки str 2 ,и 0-в...

Помогите решить... - C++
Некий чиновник купил лошадей и быков на 1770 талеров. За каждую лошадь он уплотил по 31 талеру, а за каждого быка - по 21 телеру. Сколько...

Помогите решить . - C++
C++ Вести три действительных числа от -10 до 10. Возвести в квадрат те из них, значения которых неотрицательны, и в третью степень...


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

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

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