Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
napalm2005
2 / 2 / 0
Регистрация: 08.12.2010
Сообщений: 40
#1

Циклы [Pellec c] - C++

08.12.2010, 16:24. Просмотров 372. Ответов 5
Метки нет (Все метки)

В общем ситуация такова:
Задано подмножество натуральных чисел от 1 до N (вводится пользователем, N < 100000). Нужно найти число пар элементов из этого подмножества таких, что их сумма является простым числом. Например: (1,2), сумма равна 3. При этом пары, состоящие из одних и тех же элементов считать за одну пару. Например: (1,2) и (2,1).
Не могу понять каким образом осуществить это с помощью циклов.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.12.2010, 16:24
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Циклы [Pellec c] (C++):

Заменить в коде циклы for на циклы while - C++
int i, j, n; bool a; cin &gt;&gt; i &gt;&gt; n; for (i; i&lt;n; i++) { a = true; for (j = 2; j &lt;= i / 2; j++) if ((i%j) == 0) a =...

Циклы do… while - C++
Подскажите пожалуйста, что не так выводит в результате все время 1 Найти произведение p=(1-1/2)(1-1/4)...(1-2^n) Сомножители брать с...

Циклы do и while - C++
Приветсвую всех. Прошу помощи в решении двух задач: 1.Составить программу для определения, является ли натуральное число k степенью...

Циклы (for, while, do while) - C++
Помогите пожалуйста, вообще ничего не получается...:( Через for: 1.Задано натуральное число, уничтожить с него цифры - &quot;5&quot; и &quot;2&quot;,...

i++ vs ++i (циклы) - C++
Собстно стало интересно почему все пишут for(ptrdiff i = 0; i &lt; 10; i++) { } постфиксный инкремент медленнее, а в данном...

Циклы в С++ - C++
Напишите программу, которая будет выводить на печать средний и максимальный результат из введенных.

5
valeriikozlov
Эксперт С++
4680 / 2506 / 322
Регистрация: 18.08.2009
Сообщений: 4,550
08.12.2010, 19:41 #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
#include <stdio.h>
#include <math.h>
int simp(int n)
{
    if(n!=2 && n%2==0)
        return 0;        
    for(int i=3; i<=(int)sqrt((double)n); i+=2)
       if(n%i==0)
           return 0;
    return 1;
}
int main()
{
    int N;
    scanf("%d", &N);
    int col=0;
    for(int i=2; i<N*2; i++)
        if(simp(i)==1)
        {
            if(i<=N+1)
                col+=i/2;
            else
                col+=i/2-(i-N-1);
        }
    printf("%d", col);
    return 0;
}
1
napalm2005
2 / 2 / 0
Регистрация: 08.12.2010
Сообщений: 40
08.12.2010, 20:23  [ТС] #3
valeriikozlov, эх спасибо тебе. А вот только мы функций не проходили еще, поэтому извеняюсь за отобранное время.
0
valeriikozlov
Эксперт С++
4680 / 2506 / 322
Регистрация: 18.08.2009
Сообщений: 4,550
08.12.2010, 21:14 #4
Цитата Сообщение от napalm2005 Посмотреть сообщение
А вот только мы функций не проходили еще
Ничего страшного, пройдете. Вот без функций (правда я не понял о каких функциях идет речь - об int simp(int n) или sqrt(), убрал обе на всякий случай):
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 <stdio.h>
 
int main()
{
        int N;
        scanf("%d", &N);
        int col=0;
        for(int i=2; i<N*2; i++)
        {
            int fl=1;
            if(i!=2 && i%2==0)
                fl=0;
            for(int j=3; fl==1 && j<i/2; j+=2)
                if(i%j==0)
                    fl=0;
            if(fl==1)
            {
                if(i<=N+1)
                    col+=i/2;
                else
                    col+=i/2-(i-N-1);
            }
        }
        printf("%d", col);
        return 0;
}
1
napalm2005
2 / 2 / 0
Регистрация: 08.12.2010
Сообщений: 40
08.12.2010, 23:48  [ТС] #5
valeriikozlov, просто ситуация такова, что мы работаем с консольным приложением, и используем уже его "скелет":

#include <stdio.h>


int main(int argc, char *argv[])
{

return 0;
}


В котором, если я правильно понимаю используется только одна функция. Да и я еще дурак, не стал описывать, как я пытался это задание сделать.
0
valeriikozlov
Эксперт С++
4680 / 2506 / 322
Регистрация: 18.08.2009
Сообщений: 4,550
08.12.2010, 23:55 #6
Тогда так:
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
#include <stdio.h>
 
 
int main(int argc, char *argv[])
{
        int N;
        scanf("%d", &N);
        int col=0;
        for(int i=2; i<N*2; i++)
                {
                        int fl=1;
                        if(i!=2 && i%2==0)
                                fl=0;
                        for(int j=3; fl==1 && j<i/2; j+=2)
                                if(i%j==0)
                                        fl=0;
            if(fl==1)
                        {
                                if(i<=N+1)
                                        col+=i/2;
                                else
                                        col+=i/2-(i-N-1);
                        }
                }
        printf("%d", col);
return 0;
}
0
08.12.2010, 23:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.12.2010, 23:55
Привет! Вот еще темы с ответами:

циклы - C++

Циклы - C++
1) Дано вещественное число А и целое число N(&gt;0). Используя один цикл, найти сумму 1+A+A^2+...+A^N. Пример входных данных: 1.00 2 ...

Циклы - C++
Разработать консольную программу в C++, для нахождения значения Y, с использованием операторов цикла с параметром, цикла с предусловием,...

Циклы - C++
Пожалуйста помогите решить задачу по С++! Вообще не понимаю в этом.... Задача состоит в следующем- Дано начальное число n=... и конечное...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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