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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 27, средняя оценка - 4.81
Новенький
44 / 9 / 2
Регистрация: 03.03.2009
Сообщений: 254
#1

Простые делители - C++

23.04.2009, 22:27. Просмотров 3360. Ответов 25
Метки нет (Все метки)

Требуется написать программу которая находит сумму простых делителей числа n
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.04.2009, 22:27     Простые делители
Посмотрите здесь:

Взаимно простые делители - C++
Даны целые числа p и q. Получить все делители числа q, взаимно простые с p, т.е. не имеющие с p общих делителей. Помогите пожалуйста...

Простые делители заданного числа - C++
Задача из сборника Златопольского 8.54*. Дано натуральное число n. Получить все простые делители этого числа #include <iostream> ...

Простые делители числа,задачка! - C++
Задача:Простые делители числа 13195 - это 5, 7, 13 и 29. Какой самый большой делитель числа 600851475143, являющийся простым числом? ...

Получить все простые делители числа - C++
Здравствуйте, помогите, пожалуйста. Дано целое число n. Получить все простые делители этого числа.

Получить все простые делители числа - C++
Дано натуральное число n. Получить все простые делители этого числа. Помогите пожалуйста.

Вывести все простые делители числа - C++
Люди помогите с лабами до субботы надо сдать!!! 1. Ввести целое число N. Вывести все простые делители этого числа. 2. Ввести строку...

Получить все делители числа q, взаимно простые с р - C++
3.Даны натуральные числа р и q. Получить все делители числа q, взаимно простые с р заранее спасибо

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Новенький
44 / 9 / 2
Регистрация: 03.03.2009
Сообщений: 254
24.04.2009, 10:43  [ТС]     Простые делители #21
тоже самое, неоптимальное решение

Добавлено через 12 минут 50 секунд
Цитата Сообщение от Новенький Посмотреть сообщение
тоже самое, неоптимальное решение
Humanitis, там надо найти сумму различных простых делителей числа
вот я так написал, может сможешь оптимизировать:
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
#include <stdio.h>
#include <math.h>
#include <iostream>
using namespace std;
  bool prime(unsigned long long int n){
if (n==1) return 0;
if (n==2) return 1;
if (n%2==0) return 0;
for (int i=3; i*i<=n; i+=2)
    if (n%i==0) return 0;
    return 1;
    } 
main(){
       unsigned long long int n,i=2,res=0;
       cin>>n;
       while(n!=1){
                   if ((prime(i))&&(n%i==0)){
                                           while (n%i==0){
                                                 n/=i;
                                                 if (i!=res){
                                                             res+=i;
                                                             }
                                                 }
                                           }
                   i++;
                   }
       cout<<res;
       getchar();
       getchar();
       return 0;
       }
Humanitis
172 / 164 / 6
Регистрация: 12.01.2009
Сообщений: 430
24.04.2009, 11:04     Простые делители #22
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
#include <iostream>
#include <limits.h>
#if UINT_MAX>=1000000000
#define UINT unsigned int
#else
#if ULONG_MAX>=1000000000 
#define UINT unsigned long int
#else
#define UINT unsigned long long int
#endif
#endif
using namespace std;
UINT summ(UINT n)
{
   UINT result=0,i;
   if(!(n&1))
   {
      result+=2;
      do
      {
          n/=2;
       }while(!(n&1));
   }
   i=3;
   while(n!=1)
   {
       while(n%i)i+=2;
       do
       {
           n/=i;
       }while(n%i);
      result+=i;
      i+=2;
   }
return result;
}
main()
{
        UINT i,x;
        cin>>i;
        x=summ(i);
        cout<<x;
        return 0;
}
P.S. в след. раз постарайся хотя бы условие задачи полностью написать
Новенький
44 / 9 / 2
Регистрация: 03.03.2009
Сообщений: 254
24.04.2009, 11:07  [ТС]     Простые делители #23
Цитата Сообщение от Humanitis Посмотреть сообщение
C++
1
2
#include <iostream>
#include <limits.h>
P.S. в след. раз постарайся хотя бы условие задачи полностью написать
вооще ничего не выводит...
Humanitis
172 / 164 / 6
Регистрация: 12.01.2009
Сообщений: 430
24.04.2009, 11:13     Простые делители #24
C++
1
2
3
4
       do
       {
           n/=i;
       }while(!(n%i));//тут надо поправить
Новенький
44 / 9 / 2
Регистрация: 03.03.2009
Сообщений: 254
24.04.2009, 11:25  [ТС]     Простые делители #25
Ну а теперь 64 теста прошло, и на последнем превышен интервал времени максимум 2 сек должно быть....
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.04.2009, 18:42     Простые делители
Еще ссылки по теме:

Получить все делители числа q, взаимно простые к p - C++
Даны натуральные числа p и q. Получить все делители числа q, взаимно простые к p. помогите пожалуйста.

Получить все простые делители заданного числа - C++
Дано натуральное число n. Получить все простые делители этого числа. (нужно использовать функцию) #include &lt;iostream&gt; #include...

Получить все простые делители натурального числа - C++
2. Дано натуральное число n. Получить все простые делители этого числа.

Найти все простые делители заданного натурального числа - C++
Дано натуральное число n. Получить все простые делители этого числа.

Получить все простые делители заданного натурального числа - C++
Бьюсь с этой задачей уже несколько часов. Выдает сбой в вычислениях, и я не могу понять почему. За проверку брал число 1463....


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

Или воспользуйтесь поиском по форуму:
Новенький
44 / 9 / 2
Регистрация: 03.03.2009
Сообщений: 254
25.04.2009, 18:42  [ТС]     Простые делители #26
Попытайтесь улучшить алгоритм Humanitis
Yandex
Объявления
25.04.2009, 18:42     Простые делители
Ответ Создать тему
Опции темы

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