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

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

Войти
Регистрация
Восстановить пароль
 
sergey_viper
9 / 3 / 1
Регистрация: 15.04.2012
Сообщений: 183
#1

Вложенный цикл. Нахождение простых чисел - C++

07.12.2012, 18:28. Просмотров 1044. Ответов 7
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
 
using namespace std;
 
int main()
{
    int n,sum=0,i,k;
    cout << "Hello world!" << endl;
    cin >> n;
     for (i==n; i>0;i--)
        {for (k==n; k>0;k--)
            {
                if ((i%k==0) && (!k==i)||(!k==1))
                sum+=i;
 
                    
            }
        }
 
    cout <<sum;
    return 0;
}
Ребят, помогите с задачей.
Найдите сумму первых n натуральных чисел, которые являются простыми числами.
Мой алгоритм предполагает перебор чисел, где каждое число делится на числа от самого числа, до нуля. и если остаток от деления равен 0 и делитель не равен 1 или самому числу, то прибавляем это число к сумме.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
StanislavUA
44 / 44 / 3
Регистрация: 27.04.2011
Сообщений: 163
07.12.2012, 18:33     Вложенный цикл. Нахождение простых чисел #2
Цитата Сообщение от sergey_viper Посмотреть сообщение
i==n
это же сравнение, а нужно присваивать, так же и с k==n
sergey_viper
9 / 3 / 1
Регистрация: 15.04.2012
Сообщений: 183
07.12.2012, 19:57  [ТС]     Вложенный цикл. Нахождение простых чисел #3
Цитата Сообщение от StanislavUA Посмотреть сообщение
это же сравнение, а нужно присваивать, так же и с k==n
Спасибо! Но всё равно что-то не то. Сумму не находит. Помогите ошибку найти пожалуйста.

Добавлено через 41 минуту
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
#include <iostream>
 
using namespace std;
 
int main()
{
    int n,sum=0,i,k,d;
    cout << "Hello world!" << endl;
    cin >> n;
     for (i=n; i>0;i--)
 
        {for (k=i; k>0;k--)
            {
                d=i%k;
                if (d==0)
                    if ((k!=i)||(k!=1))
                    break;
                    else
                    sum+=i;
            }
 
        }
 
    cout <<endl<<sum;
    return 0;
}
Всё равно что-то не то/
(SkyNet)
22 / 40 / 6
Регистрация: 25.10.2011
Сообщений: 175
08.12.2012, 00:25     Вложенный цикл. Нахождение простых чисел #4
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
#include <iostream>
 
using namespace std;
 
int main()
{
    int n, sum = 0;
    bool flag;
    cout << "Hello world!" << endl;
    cin >> n;
 
     for (int i = 3; i <= n; i++)
     {
        flag = false;
        for (int j = 2; j < i; j++)
        {
            if( i % j == 0)
            {
               flag = true;
               break;
            }   
        }
       if(!flag)
          sum += i;
     }
 
    cout << endl << "Sum = " << sum << endl;
    return 0;
}
потести, но должно работать. i = 3, потому что 1 и 2 - простые и они не всчёт
Dani
1264 / 622 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
08.12.2012, 00:26     Вложенный цикл. Нахождение простых чисел #5
(SkyNet), 1 - число не простое.
(SkyNet)
22 / 40 / 6
Регистрация: 25.10.2011
Сообщений: 175
08.12.2012, 00:28     Вложенный цикл. Нахождение простых чисел #6
Цитата Сообщение от Dani Посмотреть сообщение
1 - число не простое
факт, в том что его не нужно учитывать
Dani
1264 / 622 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
08.12.2012, 00:29     Вложенный цикл. Нахождение простых чисел #7
Цитата Сообщение от (SkyNet) Посмотреть сообщение
его не нужно учитывать
может и не надо, но на будущее пригодится
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.12.2012, 00:42     Вложенный цикл. Нахождение простых чисел
Еще ссылки по теме:

Нахождение количества простых чисел в матрице C++
C++ Нахождение простых чисел в С++
C++ Нахождение простых чисел в интервале от 1 до 100
Нахождение простых чисел C++
Нахождение простых чисел на промежутке C++

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

Или воспользуйтесь поиском по форуму:
MrGluck
Ворчун
Эксперт CЭксперт С++
6461 / 3659 / 459
Регистрация: 29.11.2010
Сообщений: 9,650
08.12.2012, 00:42     Вложенный цикл. Нахождение простых чисел #8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <cmath>
 
 
bool isPrime (int n)
{
    for (int i = 2; i < sqrt(n); i++)
        if (n % i == 0)
            return false; // число делится, сл. непростое
    return true;
}
 
int main()
{
    int n, sum = 0;
    std::cin >> n;
    if (n < 1) return 1;
    for (int i=1; i <= n; i++) // можно начать с 2
        if (isPrime(i)) sum += i;
    std::cout << "Sum: " << sum;
    return 0;
}
Для проверки
Yandex
Объявления
08.12.2012, 00:42     Вложенный цикл. Нахождение простых чисел
Ответ Создать тему
Опции темы

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