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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
Roma109
0 / 0 / 0
Регистрация: 24.01.2011
Сообщений: 10
#1

Функции: нахождение факториалов простых чисел в диапазоне - C++

26.01.2011, 05:04. Просмотров 1128. Ответов 7
Метки нет (Все метки)

не могу решить задачу. помогите пожалуйста! (Программирование циклических процессов
на языке С++ с использованием функций.):
Найти р!, где р – каждое третье простое число в диапазоне от n1 до n2
(функциями оформить определение факториала и проверку, является ли число простым).
Заранее спасибо!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nameless One
Эксперт С++
5767 / 3416 / 255
Регистрация: 08.02.2010
Сообщений: 7,441
26.01.2011, 05:12     Функции: нахождение факториалов простых чисел в диапазоне #2
Цитата Сообщение от Roma109 Посмотреть сообщение
не могу решить задачу. помогите пожалуйста!
Поможем, обязательно. Показывай, что нарешал, в чем конкретно проблемы
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
26.01.2011, 09:59     Функции: нахождение факториалов простых чисел в диапазоне #3
Во-первых, нужна функция факториала. Сначала дам по ней наглядное пособие, как делать не надо:
C++
1
2
3
4
5
6
7
8
long int factorial(int x)
{
 if (x==0)
 {
  return 1;
 }
 return x*factorial(x-1);
}
А вот так надо:
C++
1
2
3
4
5
6
7
8
9
long int factorial(int x)
{
 long int result=1;
 for (; x>1; --x)
 {
  result*=x;
 }
 return result;
}
Во-вторых, тебе нужна функция проверки простоты:
C++
1
2
3
4
5
6
7
8
9
10
11
12
bool check(int x)
{
 int d;
 for (d=x-1; d>1; --d)
 {
  if (x%d==0)
  {
   retrun false;
  }
 }
 return true;
}
Ну и, наконец,
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
int main()
{
 int x;
 int y;
 int n;
 cin>>n1;
 cout<<endl;
 cin>>n2;
 cout<<endl;
 for (x=n1, n=0; x<=n2; ++x)
 {
  if (check(x))
  {
   ++n;
   if (n==3)
   {
    n==0;
    y=factorial(x);
    cout<<x<<"!="<<y<<endl;
   }
  }
 }
 return 0;
}
volovzi
267 / 169 / 8
Регистрация: 14.03.2010
Сообщений: 501
26.01.2011, 13:14     Функции: нахождение факториалов простых чисел в диапазоне #4
taras atavin, хуже проверки на простоту я ещё не видел. Это адский ад какой-то.
А программа твоя, во-первых, не скомпилируется, а во-вторых, не заработает.
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
26.01.2011, 13:18     Функции: нахождение факториалов простых чисел в диапазоне #5
Цитата Сообщение от taras atavin Посмотреть сообщение
retrun false
ну здесь тоже
C++
1
return false;
. Очепятка. Ну и инклады воткнуть.

Добавлено через 1 минуту
Цитата Сообщение от volovzi Посмотреть сообщение
хуже проверки на простоту я ещё не видел.
Согласен. Но я не смог придумать, как оптимизировать делением только на простые, если стартовать откуда попало.
volovzi
267 / 169 / 8
Регистрация: 14.03.2010
Сообщений: 501
26.01.2011, 13:39     Функции: нахождение факториалов простых чисел в диапазоне #6
Там есть ещё ошибка в условии.

А при проверке в любом случае лучше начать с двойки и двигаться вверх до корня из проверяемого числа.
valeriikozlov
Эксперт C++
4667 / 2493 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
26.01.2011, 13:50     Функции: нахождение факториалов простых чисел в диапазоне #7
Цитата Сообщение от volovzi Посмотреть сообщение
Там есть ещё ошибка в условии.
А где ошибка?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.01.2011, 13:59     Функции: нахождение факториалов простых чисел в диапазоне
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
volovzi
267 / 169 / 8
Регистрация: 14.03.2010
Сообщений: 501
26.01.2011, 13:59     Функции: нахождение факториалов простых чисел в диапазоне #8
valeriikozlov, не скажу, потому что я против того, чтобы давать лентяям готовое решение.
Yandex
Объявления
26.01.2011, 13:59     Функции: нахождение факториалов простых чисел в диапазоне
Ответ Создать тему
Опции темы

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