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

Ввести целое число N. Вывести все простые делители этого числа - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 34, средняя оценка - 4.68
VladimirH
0 / 0 / 0
Регистрация: 23.10.2010
Сообщений: 54
23.10.2010, 17:27     Ввести целое число N. Вывести все простые делители этого числа #1
прошу помочь над 2 задачами в с++:

1. Ввести целое число N. Вывести все простые делители этого числа

2. Ввести строку и слово, удалить все вхождения слова и вывести строку

буду оч благодарен за помощь...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.10.2010, 17:27     Ввести целое число N. Вывести все простые делители этого числа
Посмотрите здесь:

Ввести целое число N. Вывести все простые делители этого числа C++
Ввести целое число N. Вывести все простые числа из диапазона [2,N] C++
C++ Ввести целое N. Вывести количество десятичных цифр, необходимых для представления этого числа.
C++ ввести целое двузначное число. вывести числа кратные 3
C++ Дано целое число n. Получить все простые делители этого числа
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
odip
Эксперт C++
 Аватар для odip
7225 / 3287 / 58
Регистрация: 17.06.2009
Сообщений: 14,165
23.10.2010, 17:45     Ввести целое число N. Вывести все простые делители этого числа #2
1. Ввести целое число N. Вывести все простые делители этого числа
Перебираем все простые числа от 2 и дальше
Делим N на очередное простое число, пока делится
Цикл закончим когда N станет равно 1

Добавлено через 1 минуту
Можно даже не перебирать все простые - а перебирать числа 2,3,4,5,...
Число 4 нам никогда не попадется потому что 4=2*2
А все 2-ки из числа N как делители будут извлечены ранее

Добавлено через 1 минуту
Для скорости можно перебирать 2 отдельно
А потом 3,5,7,9,11,...
VladimirH
0 / 0 / 0
Регистрация: 23.10.2010
Сообщений: 54
23.10.2010, 17:50  [ТС]     Ввести целое число N. Вывести все простые делители этого числа #3
мне нужно написать саму программу!!

Добавлено через 1 минуту
если не сложно напишите пожалуйста
odip
Эксперт C++
 Аватар для odip
7225 / 3287 / 58
Регистрация: 17.06.2009
Сообщений: 14,165
23.10.2010, 17:54     Ввести целое число N. Вывести все простые делители этого числа #4
Окончание тоже можно ускорить

Если N стало равно 1, тогда цикл заканчивается

Берем очередной делитель p
Если N делится на p, тогда все ясно
- делим N на p, пока делится
и выводим что p - это простой делитель

А вот если N не делится на p, тогда проверяем p*p>N
Если это верно, то значит дальше нет смысла искать другие делители больше чем p,
потому что число N - само является простым
hepr
 Аватар для hepr
60 / 32 / 5
Регистрация: 21.10.2010
Сообщений: 538
23.10.2010, 18:22     Ввести целое число N. Вывести все простые делители этого числа #5
Вот мои наработки, работает в каких-то случаях правильно в каких-то нет, из-за того что нашел я формулу простых чисел Чена(http://ru.wikipedia.org/wiki/%D0%A1%...81%D0%B5%D0%BB), где сказано так же про полупростые числа(для понимания тыкни на ссылку), но с ними уж как-нибудь сам!
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 "stdafx.h"
#include "iostream"
 
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int n;
std::cin >> n;
for(int a=2;n!=1;a++)
{
        if (n%2==0)
    {
        n/=2;
        std::cout << "2 ";
    };
    if ((n%a==0)  | (n%(a+2)==0)) 
    {
        n/=a;
        std::cout << a << " ";
        a--;
    };
};
char q;
std::cin >> q;
    return 0;
}
VladimirH
0 / 0 / 0
Регистрация: 23.10.2010
Сообщений: 54
23.10.2010, 20:41  [ТС]     Ввести целое число N. Вывести все простые делители этого числа #6
млин что-то тут сложно как-то это только первая лабораторка...
МаксимМВ
C/C++
90 / 90 / 5
Регистрация: 01.07.2010
Сообщений: 281
23.10.2010, 20:55     Ввести целое число N. Вывести все простые делители этого числа #7
И это - сложно?? Ничё не сложно!

Добавлено через 10 минут
Можно взять мой вариант:
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
#include <iostream>
 
using namespace std;
 
int prv(int n)
{
    register int d;
 
    for (d=2; d<=n/2; d++)
        if (n%d==0)
            return 0;
    return 1;
}
 
int main(int argc, char *argv[])
{
    int N;
    cout<<"N: ";
    cin>>N;
    
    for (int del=2;N>1;del++)
        if (prv(del))
            if (N%del==0)
            {
                N/=del;
                cout<<del<<" ";
                del--;
            }
    return 0;
}
hepr
 Аватар для hepr
60 / 32 / 5
Регистрация: 21.10.2010
Сообщений: 538
23.10.2010, 20:55     Ввести целое число N. Вывести все простые делители этого числа #8
А что разве лабораторку на дом дают?
VladimirH
0 / 0 / 0
Регистрация: 23.10.2010
Сообщений: 54
24.10.2010, 02:19  [ТС]     Ввести целое число N. Вывести все простые делители этого числа #9
ну да мы должны сессии хотя бы 5 принести и сдать)
VladimirH
0 / 0 / 0
Регистрация: 23.10.2010
Сообщений: 54
04.11.2010, 18:11  [ТС]     Ввести целое число N. Вывести все простые делители этого числа #10
может кто со 2 поможет?
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
03.12.2010, 23:47     Ввести целое число N. Вывести все простые делители этого числа #11
Цитата Сообщение от VladimirH Посмотреть сообщение
2. Ввести строку и слово, удалить все вхождения слова и вывести строку
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <sstream>
#include <string>
 
int main()
{
    std::string str, wrd;
    std::cout << "Enter string: \n\t-> ";
    std::getline(std::cin, str);
    std::cout << "Enter word: \n\t-> ";
    std::cin >> wrd;
 
    std::istringstream ist(str);
    std::cout << "\n\t-> ";
    while(ist >> str)
        if(str != wrd)
            std::cout << str << ' ';
 
    return 0;
}
VladimirH
0 / 0 / 0
Регистрация: 23.10.2010
Сообщений: 54
03.12.2010, 23:53  [ТС]     Ввести целое число N. Вывести все простые делители этого числа #12
а можно через stdio.h
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
04.12.2010, 00:06     Ввести целое число N. Вывести все простые делители этого числа #13
VladimirH, Это уже будет Си, а в первом посте сказано:
Цитата Сообщение от VladimirH Посмотреть сообщение
прошу помочь над 2 задачами в с++:
Ну ладно на
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
#include <string.h>
 
int main()
{
    char str[256], wrd[50];
    printf("Enter string: \n\t-> ");
    gets(str);
    printf("Enter word: \n\t-> ");
    gets(wrd);
 
    printf("\nAfter delete: \n\t-> ");
    for(char *p = strtok(str, " "); p; p = strtok(NULL, " "))
        if(strcmp(p, wrd))
            printf("%s ", p);
    return 0;
}
VladimirH
0 / 0 / 0
Регистрация: 23.10.2010
Сообщений: 54
04.12.2010, 00:13  [ТС]     Ввести целое число N. Вывести все простые делители этого числа #14
Спасибо огромное!!!

З.Ы. можно ещё пояснить немного после мэйна, а то защитить её уже завтра надо будет

Добавлено через 36 секунд
там где цикл фор идёт
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
04.12.2010, 00:17     Ввести целое число N. Вывести все простые делители этого числа #15
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
#include <string.h>
 
int main()
{
    char str[256], wrd[50];
    printf("Enter string: \n\t-> ");
    gets(str);
    printf("Enter word: \n\t-> ");
    gets(wrd);
 
    printf("\nAfter delete: \n\t-> ");
    for(char *p = strtok(str, " "); p; p = strtok(NULL, " "))//Розбиваем строку на слова при помощи strtok()
        if(strcmp(p, wrd))//Если некое слово из строки не ровняется слову которие мы ввели...
            printf("%s ", p);//...значить выводим его на екран
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.12.2010, 00:21     Ввести целое число N. Вывести все простые делители этого числа
Еще ссылки по теме:

C++ С клавиатуры задается двухзначное целое число. Необходимо вывести на экран все его делители
Дано натуральное число N получить все делители этого числа. C++
C++ Циклические алгоритмы: вывести на экран все простые делители заданного натурального числа

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

Или воспользуйтесь поиском по форуму:
VladimirH
0 / 0 / 0
Регистрация: 23.10.2010
Сообщений: 54
04.12.2010, 00:21  [ТС]     Ввести целое число N. Вывести все простые делители этого числа #16
Спасибо!
Yandex
Объявления
04.12.2010, 00:21     Ввести целое число N. Вывести все простые делители этого числа
Ответ Создать тему
Опции темы

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