Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [C++] простые числа


Автор: Katjusha 25.11.2007, 14:00
 smile 

Автор: Alek86 25.11.2007, 14:04
в центр помощи это

Автор: MAKCim 25.11.2007, 14:05
Для домашних заданий, курсовых, существует "Центр Помощи".

Тема перенесена! 

Автор: Chaos A.D. 25.11.2007, 18:19
этими числами могут быть 1 и n-1 ;)

Автор: Katjusha 25.11.2007, 20:01
Chaos A.D., да, но как правильно это написать в задании на С++?:((((

Кто нибудь, ПОЖАЛУЙСТА, помогите :((((((((((

Автор: JAPH 25.11.2007, 21:41
Кто такие парные числа?

Автор: Katjusha 25.11.2007, 21:56
JAPH, это четные числа, например 2, 4, 6, 8 итд.


Автор: JAPH 25.11.2007, 22:08
Chaos A.D., 1 - не простое.

Код

#include <iostream>
using namespace std;
bool isSimple (unsigned n) {
    for (unsigned i = 2; i * i <= n; i++) if (!(n % i)) return false;
    return true;
}
unsigned tryToFind (unsigned n) {
    for (unsigned i = 2; i * 2 <= n; i++) if (isSimple(i) && isSimple(n - i)) return i;
    return 0;
}
unsigned main () {
    unsigned n;
    cin >> n;
    if (unsigned a = tryToFind(n)) cout << a << " + " << n - a;
    else cout << "No such pair";
    //system("pause");
    return 0;
}


Или даже
Код
#include <iostream>
using namespace std;
bool isSimple (unsigned n) { // Предполагается нечётный параметр, поэтому проверяется делимость только на нечётные числа
    for (unsigned i = 3; i * i <= n; i += 2) if (!(n % i)) return false;
    return true;
}
unsigned tryToFind (unsigned n) {
    if (n == 4) return 2; // Единственный случай с чётными слагаемыми
    for (unsigned i = 3; i * 2 <= n; i += 2) if (isSimple(i) && isSimple(n - i)) return i;
    return 0;
}
unsigned main () {
    unsigned n;
    cin >> n;
    if (n % 2) cout << "Even number expected\n";
    else if (unsigned a = tryToFind(n)) cout << a << " + " << n - a;
         else cout << "No such pair\n"; // На всякий случай
    system("pause");
    return 0;
}

Автор: Katjusha 25.11.2007, 22:22
JAPH, спасибо Вам БОЛЬШОЕ за помощь! smile)))))))  smile  smile  

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)