Форум программистов, компьютерный форум 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) Додати після кожного непарного елемента...
Циклы 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
243 / 175 / 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;
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru