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

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

Войти
Регистрация
Восстановить пароль
 
Ксения Стэп
1 / 1 / 0
Регистрация: 11.12.2010
Сообщений: 24
#1

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

11.12.2010, 11:56. Просмотров 475. Ответов 4
Метки нет (Все метки)

ПОМОГИТЕ ПОЖАЛУЙСТА РЕШИТЬ ЗАДАЧУ - "Вводится последовательность из N целых чисел. Сформировать новую
последовательность, каждый элемент которой равен 1, если
соответствующее число простое, 2 – если число совершенное, 0 – в
остальных случаях. Вычислить количество 0, 1 и 2 в выходной
последовательности (функциями оформить проверку является ли число
простым, совершенным)."
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.12.2010, 11:56
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Простые числа (C++):

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

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

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

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

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
lemegeton
2923 / 1352 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
11.12.2010, 12:32 #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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#include <iostream>
#include <cstdlib>
 
using namespace std;
 
// стандартная проверка на простое число
bool is_simple(int n)
{
        if (abs(n) == 2)
                return true;
        if ((abs(n) < 2) || (n%2 == 0))
                return false;
        for (int i=3; (i*i)<n; i+=2)
                if ((n % i) == 0)
                        return false;
        return true;
}
 
// быстрая проверка на совершенное число
bool is_perfect(int n)
{
        // последний элемент должен быть нулем
        const int perfects[] = { 6, 28, 496, 8128, 33550336, 0 };
        // для 64 бит
        // const int perfects[] = { 6, 28, 496, 8128, 33550336, 8589869056, 1374386913280, 0 };
 
        int i = 0;
        int t;
        while (perfects[i]!=0)
        {
                t = perfects[i];
                if (t == n)
                        return true;
                else
                        if (t > n)
                                return false;
                i++;
        }
        return false;
}
 
int main()
{
        int N = 10;
 
        int *M = new int[N];
        for (int i=0; i<N; i++)
                M[i] = i;
 
        int *R = new int[N];
        for (int i=0; i<N; i++)
                if (is_simple(M[i]))
                        R[i] = 1;
                else if (is_perfect(M[i]))
                        R[i] = 2;
                else
                        R[i] = 0;
 
        int K[3] = { 0, 0, 0};
        for (int i=0; i<N; i++)
                K[R[i]]++;
 
        for (int i=0; i<N; i++)
                cout << M[i] << " ";
        cout << endl;
 
        for (int i=0; i<N; i++)
                cout << R[i] << " ";
        cout << endl;
 
        for (int i=0; i<3; i++)
                cout << i << ": " << K[i] << " ";
        cout << endl;
 
        delete [] M;
        delete [] R;
        return 0;
}
Ксения Стэп
1 / 1 / 0
Регистрация: 11.12.2010
Сообщений: 24
11.12.2010, 12:38  [ТС] #3
ИЗВИНИТЕ А ЧТО ЗНАЧИТ ВВОД САМОСТОЯТЕЛЬНО?)))
lemegeton
2923 / 1352 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
11.12.2010, 13:09 #4
Это значит, что из "ЗАДАЧИ" я не стал делать ту часть, в которой
Цитата Сообщение от Ксения Стэп Посмотреть сообщение
"Вводится последовательность из N целых чисел. ..."
Я заменил эту часть вводом массива числами от 0 до N-1, потому что мне лень вбивать их каждый запуск программы. Вам придется сделать эту часть (ввод данных) лично (самостоятельно). Ну или попытаться просунуть преподавателю в таком виде. Авось и примет.
Ксения Стэп
1 / 1 / 0
Регистрация: 11.12.2010
Сообщений: 24
11.12.2010, 13:11  [ТС] #5
ну хорошо, и за это спасибо огромное!!!!!!!!!!!!!!!!!!!!!!очень помогли!!!!!!!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.12.2010, 13:11
Привет! Вот еще темы с ответами:

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

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

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

Найти все натуральные числа, меньшие заданного числа и взаимно простые с ним - C++
Дано натуральное число n. Необходимо получить все натуральные числа, меньшие nn и взаимно простые с ним (два натуральных числа называются...


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

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

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