0 / 0 / 1
Регистрация: 11.04.2018
Сообщений: 108
1

Не получается правильно реализовать задачу

28.05.2019, 10:24. Показов 510. Ответов 9
Метки нет (Все метки)

Среди чисел а, b, с есть хотя бы одна пара простых чисел
Не могу понять как решить эту задачу, может кто-то сможет доступно объяснить, не могу понять как проверять одновременно 3 числа
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.05.2019, 10:24
Ответы с готовыми решениями:

Хочу реализовать одну простую задачу на РНР , но не получается
Здравствуйте, Хочу сделать следующее: У меня есть текст (строка): " T1M6 G0Z25.000...

Как правильно реализовать задачу (всплывающие окна)?
Суть такая - есть php код, который выводит кучу ссылок вида echo'<a...

Не получается правильно реализовать двухуровневое меню
Добрый день! Написал программу, но в первом кейсе не работают вложенные кейсы, которые должны...

Не получается сделать задачу
Нужно определить возможность существования треугольника по сторонам. Я ввод чисел написал #include...

9
7416 / 5011 / 2890
Регистрация: 18.12.2017
Сообщений: 15,694
28.05.2019, 12:32 2
Цитата Сообщение от Егор Ю Посмотреть сообщение
Не могу понять как решить эту задачу
как вариант вызывать функцию, определяющую простое число строкой:
C++
1
if (F(a)&&F(b)==true || F(a)&&F(c)==true || F(b)&&F(c)==true) cout << "YES\n";
0
0 / 0 / 1
Регистрация: 11.04.2018
Сообщений: 108
28.05.2019, 16:17  [ТС] 3
Не подскажете, что не так делаю?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<iostream.h>
int F(int a, int b, int c);
int main()
{
system("chcp 1251>nul");
int a,b,c;
 cout<<"Введите 3 числа: ";
 cin>>a>>b>>c;
system("pause");
return 0;
}
int F(int a, int b, int c)
{
if (F(a)&&F(b)==true || F(a)&&F(c)==true || F(b)&&F(c)==true) cout << "YES\n";
}
0
7416 / 5011 / 2890
Регистрация: 18.12.2017
Сообщений: 15,694
28.05.2019, 17:11 4
Цитата Сообщение от Егор Ю Посмотреть сообщение
Не подскажете, что не так делаю?
сначала напишите функцию определяющую, простое число или нет. и только после этого вызывайте её.
0
0 / 0 / 1
Регистрация: 11.04.2018
Сообщений: 108
28.05.2019, 17:35  [ТС] 5
Функция определяющая, простое или нет так записывается?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int F(int a, int b, int c)
{
    for (int i=2; i<a; i++)
  {
     if (a % i==0)
     return true;
  }
    for (int i=2; i<b; i++)
  {
     if (b % i==0)
     return true;
  }
    for (int i=2; i<c; i++)
  {
     if (c % i==0)
     return true;
  }
}
0
7416 / 5011 / 2890
Регистрация: 18.12.2017
Сообщений: 15,694
28.05.2019, 17:46 6
Цитата Сообщение от Егор Ю Посмотреть сообщение
Функция определяющая, простое или нет так записывается?
на вход подаётся одно число
C++
1
2
3
4
5
6
7
8
bool is_prime(int n)
{
    if (n==2) return true;  
    if (n < 2 || n%2==0) return false;  
    for (int i=3; i*i<=n; i+=2)
    if (n%i==0) return false;
    return true;  
}
0
0 / 0 / 1
Регистрация: 11.04.2018
Сообщений: 108
28.05.2019, 17:52  [ТС] 7
Yetty, а как мне совместить вызов двух этих функций?

Добавлено через 2 минуты
Yetty, может как-то так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include<iostream.h>
bool F(int a);
int main()
{
system("chcp 1251>nul");
int a,b,c;
cout<<"Введите 3 числа: ";
cin>>a>>b>>c;
if (F(a)&&F(b)==true || F(a)&&F(c)==true || F(b)&&F(c)==true) cout << "YES\n";
else cout<<"No";
system("pause");
return 0;
}
bool F(int a)
{
    if (a==2) return true;  
    if (a < 2 || a%2==0) return false;  
    for (int i=3; i*i<=a; i+=2)
    if (a%i==0) return false;
    return true;  
}
0
7416 / 5011 / 2890
Регистрация: 18.12.2017
Сообщений: 15,694
28.05.2019, 18:04 8
Егор Ю, вроде всё Вам рассказал. если нужен код - так и пишите - не понять как решить задачу, а нужен код.
для целых чисел a,b,c:
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 <iostream>
using namespace std;
 
bool is_prime(int n)
{
    if (n==2) return true;  
    if (n < 2 || n%2==0) return false;  
    for (int i=3; i*i<=n; i+=2)
    if (n%i==0) return false;
    return true;  
}
 
int main()
{
    int a,b,c;
    cout << "Enter 3 integer numbers:\n";
    cin >> a >> b >>c;
    if ((is_prime(a)&&is_prime(b)==true) || (is_prime(a)&&is_prime(c))==true || (is_prime(b)&&is_prime(c))==true) cout << "YES\n";
    else cout<<"NO\n";
    
system("pause");
return 0;
}
1
0 / 0 / 1
Регистрация: 11.04.2018
Сообщений: 108
28.05.2019, 18:05  [ТС] 9
Yetty, спасибо большое, просто хотел разобраться
0
7416 / 5011 / 2890
Регистрация: 18.12.2017
Сообщений: 15,694
28.05.2019, 18:24 10
Егор Ю, пожалуйста. ==true в строке 18 можете везде убрать - написал чтобы Вам было более понятно что происходит

числа a,b,c должны помещаться в int. можете расширить диапазон, применив long long
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.05.2019, 18:24
Помогаю со студенческими работами здесь

не получается составить задачу
От станции до озера S км. Туристы, направляясь от станции к озеру, полтора часа шли пешком со...

задачу не получается сделать
Создайте класс прямых на плоскости, описав в нём все необходимые свойства, подобрав им понятные...

Не получается выполнить задачу
Напишите функцию string in(), которая принимает в качестве аргументов два указателя на строки. Если...

Задачу не получается сделать
Дан двумерный массив целых чисел. определить: а) есть ли в нем строка , состоящая только из...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru