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

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

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

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

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

не могу решить задачу. помогите пожалуйста! (Программирование циклических процессов
на языке С++ с использованием функций.):
Найти р!, где р – каждое третье простое число в диапазоне от n1 до n2
(функциями оформить определение факториала и проверку, является ли число простым).
Заранее спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.01.2011, 05:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Функции: нахождение факториалов простых чисел в диапазоне (C++):

Вывод всех простых чисел в диапазоне от 1 до 100 - C++
Написать функцию, определяющую, является ли введенное целое чис- ло простым или нет. (Число простое, если оно делится только на 1 и на...

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

Нахождение простых чисел в С++ - C++
Уважаемые форумчане, помогите пожалуйста сделать прогу работающей: #include<iostream> using namespace std; int main(){ int N,...

Нахождение простых чисел.( - C++
Люди я все понимаю, этот вопрос наверное покажется глупым, точнее он таковым и является. Программа нахождения простых чисел cin >>...

Нахождение простых чисел - C++
Доброго времени суток. Помогите в написании программы,которая бы находила простые числа в пределах от 2 до 100. Зараннее благодарен.

Рекурсивное нахождение простых чисел - C++
Дано число Х, определить количество простых чисел меньших Х. С использованием рекурсивных методов. Задача пустяковая, учу С#, а задание...

7
Nameless One
Эксперт С++
5775 / 3425 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
26.01.2011, 05:12 #2
Цитата Сообщение от Roma109 Посмотреть сообщение
не могу решить задачу. помогите пожалуйста!
Поможем, обязательно. Показывай, что нарешал, в чем конкретно проблемы
0
taras atavin
3570 / 1753 / 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;
}
0
volovzi
267 / 169 / 8
Регистрация: 14.03.2010
Сообщений: 501
26.01.2011, 13:14 #4
taras atavin, хуже проверки на простоту я ещё не видел. Это адский ад какой-то.
А программа твоя, во-первых, не скомпилируется, а во-вторых, не заработает.
0
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
26.01.2011, 13:18 #5
Цитата Сообщение от taras atavin Посмотреть сообщение
retrun false
ну здесь тоже
C++
1
return false;
. Очепятка. Ну и инклады воткнуть.

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

А при проверке в любом случае лучше начать с двойки и двигаться вверх до корня из проверяемого числа.
0
valeriikozlov
Эксперт С++
4672 / 2498 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
26.01.2011, 13:50 #7
Цитата Сообщение от volovzi Посмотреть сообщение
Там есть ещё ошибка в условии.
А где ошибка?
0
volovzi
267 / 169 / 8
Регистрация: 14.03.2010
Сообщений: 501
26.01.2011, 13:59 #8
valeriikozlov, не скажу, потому что я против того, чтобы давать лентяям готовое решение.
0
26.01.2011, 13:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.01.2011, 13:59
Привет! Вот еще темы с ответами:

Нахождение простых чисел на отрезке [m;n] - C++
INPUT.TXT содержит два натуральных числа M и N, разделенных пробелом (2 ≤ M ≤ N ≤ 106). В выходной файл OUTPUT.TXT выведите все простые...

Нахождение парных простых чисел с++ - C++
Дорогие форумчане прошу помощи. Парные простые числа.парными простыми числами называют два простых числа, разность которых равна...

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

Нахождение простых чисел в массиве - C++
Ввести 20 чесел в массив и найти среди них все простые числа Пожалйста помогите :( Буду оч благодарна


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

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

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