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

Поменять местами в массиве последнее простое число и первое совершенное - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Графы http://www.cyberforum.ru/cpp-beginners/thread179678.html
помогите пожалуйста написать программу удаления вершины: а)с сохранением связей б)без сохранения связей желательно на с билдер
C++ Найти сумму элементов массива Народ помогите составить программу вот по таким условиям: В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) сумму элементов массива с нечётными номерами; 2) сумму элементов массива, расположенных между первым и последним отрицательными элементами. http://www.cyberforum.ru/cpp-beginners/thread179677.html
C++ сдвиг и вставка в одномерном масиве
1) Сформувати одномірний масив цілих чисел, використовуючи датчик випадкових чисел. 2) Роздрукувати отриманий масив. 3) Видалити елементи кратні 7. 4) Додати після кожного непарного елемента масиву елемент зі значенням 0. 5) Роздрукувати отриманий масив Добавлено через 4 минуты надо как бы вставить нули и удалить числа кратные семи, знаю как делать на паскале по аналогии в С++ не...
Циклы C++
1)Используя перебор значений найти все числа из диапазона от n до m, которые при возведении в квадрат дают палиндром 2)В соревнованиях по фигурному катанию N судей независимо выставляют оценки спортсмену. Затем из объявленных оценок удаляют самую высокую (одну, если самую высокую оценку выставили несколько судей). Аналогично поступают с самой низкой оценкой. Для оставшихся оценок вычисляется...
C++ Вопрос по классам http://www.cyberforum.ru/cpp-beginners/thread179660.html
Опишу определение базавого класса и производного class Date { private: ... public: Date( ){}; virtual ~Date(){};
C++ массив Дано натуральное число n и квадратная матрица порядка n , каждый элемент которой не превышает 9.Построит последовательность из нулей и единиц, в которой , тогда и только тогда, элементы i-того столбца матрицы образовывают палиндром. подробнее

Показать сообщение отдельно
TheMachinist
242 / 174 / 15
Регистрация: 14.06.2010
Сообщений: 422
22.10.2010, 14:01     Поменять местами в массиве последнее простое число и первое совершенное
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
#include <iostream>
#include <ctime> // это для генерации случайных чисел(srand(time(NULL)) , rand()) 
using namespace std;
 
bool IsPrime(int n); // прототип функции, которая определяет является ли число простым
bool IsPerfect(int n); // прототип функции,которая определяет является ли число совершенным
                                 // сами функции расположены после main() внизу
int main()
{
        srand(time(NULL)); // семя случайных чисел( от времени)
        const int m(100); // размер массива(должен быть const т.е. постоянным)
        int X[m]; // объявляем массив целых чисел (int)
        for(int i = 0;i < m;++i){ // цикл выполняется m раз(100)
                X[i] = rand()%100; /* на каждом проходе цикла каждому из 100 элементов массива
присваивается случайное значение от 0 до 99 */
        cout << X[i] << " "; // и выводится на экран
}
cout << "\n\n";
int prime; // переменная для хранения простого числа
 prime_ind;  /* в этой переменной будет храниться индекс,под которым это простое число расположено в массиве */
for(int i = m-1;i >= 0 ;--i) // этот цикл ищет простое число с конца массива
if(IsPrime(X[i])) { prime = X[i];  prime_ind = i; break;} /* каждый элемент массива передается в качестве
      параметра функции IsPrime(). Если IsPrime() возвращает true, то значение данного элемента 
     присваевается переменной prime. А i (индекс под которым эта переменная расположена в массиве)
    присваевается переменной prime_ind. Раз простое число и его индекс найдены,прерываем цикл - break; */
 
else if(i == 0 && !IsPrime(X[0])) cout << "No prime numbers found"; /* если дошли от конца до начала
        массива(i = 0) и не нашли простого числа !IsPrime() - выводим сообщение что не найдено
   знак '!' значит "не" */
int perfect; // аналогичным образом заводим переменную для хранения совершенного числа....
perf_ind; // и его индекса в массиве
for(int i = 0;i < m;++i)  /* с начала массива посылаем каждый элемент в качестве аргумента функции IsPerfect(
if(IsPerfect(X[i])) {perfect = X[i];  perf_ind = i; break;} /* если функция сообщает что это совершенное число,
    то его значение присваивается переменной perfect, а индекс присваевается переменной perf_ind.
     И цикл перывается - break; */
else if(i == m-1 && !IsPerfect(X[99])) cout << "No perfect numbers found";
 
int t = X[perf_ind]; X[perf_ind] = X[prime_ind]; X[prime_ind] = t; /* Меняем их местами используя временную
    переменную t */ 
for(int i = 0;i < m;++i)
        cout << X[i] << " ";
 
 
        system("pause");
}
 
bool IsPrime(int n)
{
        if(n < 2) return false;
        for(int i = 2; i*i <= n;++i)
                if(n%i == 0) return false;
        return true;
}
bool IsPerfect(int n)
{
        if(n < 6) return false;
int d[20], index = 0, sum = 0;
        for(int i = 1;i < n;++i)
                if(n%i == 0) {d[index] = i; index++;}
 
                for(int i = 0;i < index;++i)
                        sum += d[i];
 
                return sum == n;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru