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

Вычисления количества простых чисел, принадлежащих отрезку - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
Sithis
10 / 1 / 0
Регистрация: 27.11.2011
Сообщений: 98
30.05.2012, 19:33     Вычисления количества простых чисел, принадлежащих отрезку #1
Задание: Составить программу вычисления количества простых чисел, принадлежащих отрезку [m, n]. Для проверки, является ли число простым, использовать функцию prostoe. Функция возвращает 1, если число является простым, а 0 - в противном случае.
/ / Функция проверяет, является ли число простым
C++
1
2
3
4
5
6
7
8
9
10
11
int prostoe (int n)
{Int d, r;
d = 2;
do {
r = n% d;
if (r! = 0) d + +;
}
while (r! = 0); / / пока n не поделится на d
if (d == n) return 1;
else return 0;
}
_______________________________________________
Я составил код программы, но она не работает, вот код:
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
#include <iostream.h>
 
int prostoe(int n)
{ int d, r;
d=2; 
do {
r=n%d;
if (r!= 0) d++;
}
while (r!=0);
if (d==n) return 1; 
else return 0;
}
 
int main()
{const int n=10;
    int i,y,k;
 double x;
 int a[n];
 for(i=0;i<n;i++){x=prostoe(a[i]);
 if(x>0)k++;}
 if (x=1) y=y+1;
 else y=0;
 cout<<"y="<<y<<"\n";
}
Помогите пожалуйста
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.05.2012, 19:33     Вычисления количества простых чисел, принадлежащих отрезку
Посмотрите здесь:

Составить пограмму вычисления количества простых чисел, которые принадлежат отрезку [m,n].Для проверки, является ли число простым использовать функцию C++
Составить программу вычисления количества простых чисел, принадлежащих отрезку [m, n] C++
C++ Подсчет количества простых чисел в строке
Получить сумму членов, принадлежащих отрезку C++
C++ вычислить сумму и количество элементов массива принадлежащих отрезку [0,1]
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Andrey.K
 Аватар для Andrey.K
338 / 259 / 15
Регистрация: 14.11.2010
Сообщений: 480
30.05.2012, 19:45     Вычисления количества простых чисел, принадлежащих отрезку #2
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
#include <iostream>
#include <conio.h>
using namespace std; 
bool Prostoe(int &N)
{
    bool rez=true;
    for(int k=2;k<=N/2;k++)
    if (N%k==0) rez=false;
    return rez;
}
int main()
{
    setlocale(0,"Rus");
    int n,m,count=0;
    cout<<"Введите n: ";cin>>n;
    cout<<"ВВедите m: ";cin>>m;
    for(int i=n;i<m;i++)
    {
        if(Prostoe(i)==true) count++;
    }
    cout<<"Количество простых чисел на отрезке ["<<n<<","<<m<<"] : "<<count<<endl;
    getch();
    return 0;
}
rinat_w
89 / 85 / 4
Регистрация: 13.11.2011
Сообщений: 183
30.05.2012, 19:57     Вычисления количества простых чисел, принадлежащих отрезку #3
во
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<iostream>
using namespace std;
int prostoe(int prime){
    int ret=1;
    for (int i=2; i<prime; i++)
        if (prime%i==0) ret=0;
    return ret;
}
int main(){
    int n,m,counter=0;
    cout<<"n="; cin>>n;
    cout<<"m="; cin>>m;
    for (int i=n; i<=m; i++){
        if (prostoe(i)==1){
                           cout<<i<<" ";
                           counter++;
        }
    }
    cout<<"\nThere is "<<counter<<" prime numbers.\n";
    system("pause");
    return 0;
}
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,155
Завершенные тесты: 1
30.05.2012, 19:57     Вычисления количества простых чисел, принадлежащих отрезку #4
Цитата Сообщение от Andrey.K Посмотреть сообщение
if(Prostoe(i)==true) count++;
логично написать так:
C++
1
if(Prostoe(i)) count++;
А функцию можно чуток ускорить
C++
1
2
3
4
5
6
bool Prostoe(const int &N)
{
    for(int k=2;k<=N/2;k++)
    if (N%k==0) return false;
    return true;
}
Andrey.K
 Аватар для Andrey.K
338 / 259 / 15
Регистрация: 14.11.2010
Сообщений: 480
30.05.2012, 19:59     Вычисления количества простых чисел, принадлежащих отрезку #5
Цитата Сообщение от zss Посмотреть сообщение
логично написать так:
C++
1
if(Prostoe(i)) count++;
А функцию можно чуток ускорить
C++
1
2
3
4
5
6
bool Prostoe(const int &N)
{
    for(int k=2;k<=N/2;k++)
    if (N%k==0) return false;
    return true;
}
Согласен, взял её готовую, ещё на 1 курсе писал.
b_kasenov47
14 / 14 / 1
Регистрация: 28.07.2012
Сообщений: 57
28.07.2012, 19:13     Вычисления количества простых чисел, принадлежащих отрезку #6
Можно еще ускорить, если проверять число до корня)))
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
28.07.2012, 19:21     Вычисления количества простых чисел, принадлежащих отрезку #7
Логично, конечно, проверять до корня и пробегать только по нечетным множителям, предварительно проверив число на четность.
C
1
2
3
4
5
6
7
8
9
10
11
12
int Prime (unsigned int n)
{
     if (n == 0 || n == 1 || n % 2 == 0) 
         return 0;
     else
     {
         unsigned int i = 3;
         while (i*i <= n && n % i != 0)
             i += 2;
         return (i*i > n);
     }
}
И, если позволяет ситуация (для m и n), то лучше вообще решето Эратосфена использовать.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.07.2012, 04:31     Вычисления количества простых чисел, принадлежащих отрезку
Еще ссылки по теме:

C++ Задан массив,состоящий из n элементов.Подсчитать число членов,принадлежащих отрезку[a,b].
Нахождение количества простых чисел в матрице C++
C++ Распечатать четверки простых чисел, принадлежащих одному десятку и не превосходящих данного числа

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

Или воспользуйтесь поиском по форуму:
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
29.07.2012, 04:31     Вычисления количества простых чисел, принадлежащих отрезку #8
Конкурс(поиск простых чисел)
Yandex
Объявления
29.07.2012, 04:31     Вычисления количества простых чисел, принадлежащих отрезку
Ответ Создать тему
Опции темы

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