С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
0 / 0 / 1
Регистрация: 28.12.2011
Сообщений: 24

задача с циклами "Гадание"

09.02.2012, 13:32. Показов 3931. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
http://acmp.ru/index.asp?main=task&id_task=23
помогите решить

дальше незнаю как
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <stdio.h>
using namespace std;
 
int main (){
int n,k,s=0;
  freopen("input.txt","r",stdin);
  freopen("output.txt","w",stdout);
   for k=1..n{
       if(n%k = 0) s = s+k;
  }
  
  write(s);
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.02.2012, 13:32
Ответы с готовыми решениями:

Задача с циклами
Объясните пожалуйста на словах как решить. Задача 1. Напишите программу, которая по заданному натуральному n печатает рисунок (см....

C++ задача с циклами
#include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int main () { setlocale(LC_ALL, &quot;Russian&quot;); int a; cout...

Задача с циклами
Само задание во вложении, не работал с шаблонами помогите пожалуйста

11
 Аватар для I.M.
576 / 559 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
09.02.2012, 14:58

Не по теме:

Вам бы начать с предыдущих 22 задач этого же сайта. Там наверняка поднималась тема циклов



C++
1
2
3
4
5
int sum = 1+N;//N всегда делится на 1 и само себя без остатка
for(int i = 2,i_end = N/2;i <= i_end;++i)
{
     if(N%i == 0)sum += i;
}
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
09.02.2012, 15:53
Цитата Сообщение от Remedych Посмотреть сообщение
помогите решить
- ниже код на плюсах который решает данную задачу
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
#include <iostream>
#include <fstream>
using namespace std;
 
int main()
{
    int i, n, sum;
    ifstream ifs("input.txt");
    ofstream ofs("output.txt");
    if(!ifs)
        cout<<"Error open input.txt\n";
    else
    if(!ofs)
        cout<<"Error open output.txt\n";
    else
    {
        ifs>>n;
        sum = n;
        for(i = 1; i < 10; i++)
        {
            if(n % i == 0)
                sum += i;
        }
        cout<<"sum = "<<sum<<endl;
        ofs<<sum;
    }
    if(ifs)
        ifs.close();
    if(ofs)
        ofs.close();
    system("pause");
    return 0;
}
0
0 / 0 / 1
Регистрация: 28.12.2011
Сообщений: 24
09.02.2012, 15:55  [ТС]
I.M., все равно не могу понять как решить эту задачу
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
09.02.2012, 16:06
Remedych ,а код я зачем приводил - скомпилируй и запиши в файлы проверочные значения...

Не по теме:

(ну лан отписываюсь тогда от топика)

0
 Аватар для I.M.
576 / 559 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
09.02.2012, 16:07
Вам выше Юра готовую программу привел. Используйте.

Только исправьте здесь 10 на n
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
for(i = 1; i < 10; i++)
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
09.02.2012, 16:11
Цитата Сообщение от I.M. Посмотреть сообщение
Только исправьте здесь 10 на n
- зачем???Любое двузначное число может быть представлено в виде произведения двух однозначных(т.е. произведение чисел от 1 до 10, размышляя на эту тему думаю что условие по i следует ограничить 13-ю и всё), тобишь

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
for(i = 1; i < 13; i++)
* * * * * * * * {
* * * * * * * * * * * * if(n % i == 0)
0
 Аватар для I.M.
576 / 559 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
09.02.2012, 16:19
Наверное я чего-то не понимаю, но n может быть до 1000.
Да и потом, даже если взять ваше утверждение, то возьмем число 51. 51 = 3*17. Значит sum = 1+3+17+51
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
09.02.2012, 16:29
Цитата Сообщение от I.M. Посмотреть сообщение
3*17
Цитата Сообщение от I.M. Посмотреть сообщение
но n может быть до 1000.
- ну и берём от балды 645
Делится на
1 - понятное дело
645 - стопудово
2 - фигушки
3 - оносамое
4 - 2*2 - в топку
5 - угу
6 - как и 4-ри 3*3 - в топку
7 - пипец знаков после запятой - НЕТ
8 - на кой делить на 8-мь если это 2 и 4, т.е выкинуть
9 - 3 *3 тоже в топку
11 - ээ неее
12 - 3*4 тоже в топку
13 - нет
14 - 2*7 не надо
15 - 3*5 не надо
16 - 4*4 не надо
17 - нет, но надо включить его в список
18 - 2*9 = 2*3*3 - в топку
19 - вот его ещё возьмём
На сим список
1,2,3,5,7,11,13,17,19
Все остальные числа - комбинации приведенных выше и поэтому говоря что делится на 9 - кривим душой - оно делится на 3-ри, хотя может я чего то сам не допопонимаю...

Добавлено через 53 секунды
Цитата Сообщение от I.M. Посмотреть сообщение
51
= 3 + 51 + 17 + 1 ну вот как раз по списку

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
На сим список
1,2,3,5,7,11,13,17,19
сейчас подправлю код под это дело
0
 Аватар для I.M.
576 / 559 / 47
Регистрация: 16.12.2011
Сообщений: 1,389
09.02.2012, 16:33
В задании написано - найти сумму всех делителей, а не только простых делителей.
И если уж поправлять, тогда нужно брать список всех простых чисел до sqrt(1000). Т.е. до 31 включительно.
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
09.02.2012, 17:18
Цитата Сообщение от I.M. Посмотреть сообщение
В задании написано - найти сумму всех делителей, а не только простых делителей.
И если уж поправлять, тогда нужно брать список всех простых чисел до sqrt(1000). Т.е. до 31 включительно.
- вообще задание туповатое, вот и ломаем голову. Нет брать числа кратные простым сомножителям это глупость, нужен список простых чисел в диапазоне от 1 до 1000, тперь мне стало понятно, момент...

Добавлено через 17 минут
http://ru.wikipedia.org/wiki/Простые_числа

Добавлено через 2 минуты
Как найти простое число
1
Способ 1. Решето Эратосфена.
По этому методу, чтобы найти все простые числа не больше определенного значения Х, необходимо выписать подряд все целые числа от одного до Х. Возьмем число 2 как первое простое число. Вычеркнем из списка все числа, делящиеся на 2. Затем возьмем следующее после двойки, не вычеркнутое число, и вычеркнем из списка все числа, делящиеся на взятое нами число. И далее каждый раз будем брать следующее не вычеркнутое число и вычеркивать из списка все числа, делящиеся на взятое нами число. И так до тех пор пока выбранное нами число не станет больше, чем Х/2. Все оставшиеся в списке не вычеркнутые числа являются простыми

2
Способ 2. Решето Сундарама.
Из ряда натуральных чисел от 1 до N исключаются все числа вида
х + у + 2ху,
где индексы х (не больший у) пробегают все натуральные значения, для которых х+у+2ху не больше N, а именно значения х=1, 2,...,((2N+1)1/2-1)/2 и х=у, х+1,...,(N-х)/(2х+1)ю\. Затем каждое из оставшихся чисел умножается на 2 и увеличивается на 1. Полученная в результате последовательность представляет собой все нечётные простые числа в ряду от одного до 2N+1.

3
Способ 3. Решето Аткина.
Решето Аткина представляет собой сложный современный алгоритм нахождения всех простых чисел до заданного значения Х. Основная суть алгоритма состоит в представлении простых чисел как целых с нечетным числом представлений в данных квадратных формах. Отдельный этап алгоритма отсеивает числа, кратные квадратам простых чисел в интервале от 5 до Х.

4
Тесты простоты.
Тесты простоты-- это алгоритмы, позволяющие определить, является ли конкретное число Х простым.
Один из самых простых, но и трудоемких тестов-- это перебор делителей. Он состоит в преборе всех целых чисел от 2 до квадратного корня из Х и в вычислении остатка от деления Х на каждое из этих чисел. Если остаток от деления числа Х на некоторое число (больше 1 и меньше Х) равен нулю, то число Х является составным. Если выявляется, что число Х невозможно сократить без остатка ни на одно из чисел, кроме единицы и самого себя, то число Х простое.
Кроме этого способа существует также большое количество других тестов для тестирования простоты числа. Большинство этих тестов являются вероятностными и используются в криптографии. Единственный тест, гарантирующий получение ответа (тест AKS) очень сложен в вычислении, что затрудняет его практическое применение
- материал взят из данного источника
http://www.kakprosto.ru/kak-37... toe-chislo
0
0 / 0 / 1
Регистрация: 28.12.2011
Сообщений: 24
10.02.2012, 01:08  [ТС]
дак как решить задачу правильно?

Добавлено через 27 минут
все всем спасибо, сам допер
вот решение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 #include <iostream>
using namespace std;
 
int main ()
{
  freopen("input.txt","r",stdin);
  freopen("output.txt","w",stdout);
   int n,k,s=0;
   cin>>n;
   
   for(k = 1 ; k <= n ; k++) 
 { 
 if(n % k == 0)
 s=s+k;  
 }
   cout<<s;
 
   
  }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.02.2012, 01:08
Помогаю со студенческими работами здесь

Задача с циклами while и do while
Напишите программу с помощью цикла while и do while, которая выводит числа от заданного до заданного, но только в том случае, если они...

Задача с циклами. Не могу доработать код
Вычислить сумму s, прекращая суммирование, когда очередной член суммы по абсолютной величине станет меньше 0,0001, при изменении аргумента...

Задача с циклами
Прошу вашей помощи, нужно решить пример, используя какой либо из циклов: while, do while, for.

Задача с циклами
Народ помогите решить такую задачу: Пользователь вводит числа (3, 4 или 5) до ввода символа &quot;e&quot; или &quot;E&quot;. Вывести...

Задача с циклами
Здравствуйте. помогите пожалуйста решить 2 задачи,завтра сдавать( решаю остальные 3 которые мне понятны..) 1) Составить программу,...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru