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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.67
alibaba314
18 / 18 / 1
Регистрация: 22.03.2009
Сообщений: 58
#1

Найти простые числа, меньшие n - C++

11.05.2009, 18:56. Просмотров 2401. Ответов 18
Метки нет (Все метки)

дано: введить число n, найти все простые числа <n

помогите ....! пожалуйста
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.05.2009, 18:56
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти простые числа, меньшие n (C++):

Найти все натуральные числа, меньшие заданного числа и взаимно простые с ним - C++
Дано натуральное число n. Необходимо получить все натуральные числа, меньшие nn и взаимно простые с ним (два натуральных числа называются...

Найти все простые числа меньшие заданного числа - C++
Помогите Пожалуйста! Простое число это число которое делится только на 1 и на самого себя. Пользователь вводит число n и...

Получить все натуральные числа, меньшие n и взаимно простые с p - C++
Помогите сделать программу! Даны целые числа n и m. Получить все натуральные числа, меньшие n и взаимно простые с p! Заранее спасибо!

Распечатать все простые сдвоенные числа меньшие заданного - C++
Здравствуйте! Помогите написать программу Если p и q - простые числа и q = p+2, то они называются простыми сдвоенными числами или...

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

Найти все трехзначные простые числа. Определить функцию позволяющую распознавать простые числа - C++
Найти все трехзначные простые числа. Определить функцию позволяющую распознавать простые числа. Простые числа это когда они делятся только...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Rififi
2359 / 1054 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
11.05.2009, 19:00 #2
с++ Решето Эратосфена
0
Акелла
Сонный металюга
45 / 45 / 6
Регистрация: 10.05.2009
Сообщений: 295
11.05.2009, 19:12 #3
просто проверка на простоту=) без условия меньше больше

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
main()
{
   clrscr();
    int x,i,temp;
    printf("\n\tvvedite X=");
    scanf("%i",&x);
    for(i=2;i<=x/2;i++)//если наше число х делиться без остатка на какое либо число от 2 до х/2 –оно не простое
    {  
        if(x%i==0)
            {
                printf("\n\tchislo %i - NEprostoe",x);
                exit(0);
            }
 
    }
    printf("\n\tchislo %i - prostoe",x);//иначе -простое
    exit(0);
    
    return(0);
}
1
ISergey
Maniac
Эксперт С++
1374 / 885 / 52
Регистрация: 02.01.2009
Сообщений: 2,658
Записей в блоге: 1
11.05.2009, 19:20 #4
Цитата Сообщение от Rififi Посмотреть сообщение
с++ Решето Эратосфена
0
alibaba314
18 / 18 / 1
Регистрация: 22.03.2009
Сообщений: 58
11.05.2009, 19:32  [ТС] #5
Акелла,
спасибо! но я хотел бы найти простые числа, которые < n.

вам спасибо!
0
Акелла
Сонный металюга
45 / 45 / 6
Регистрация: 10.05.2009
Сообщений: 295
11.05.2009, 19:35 #6
ну переделай ее под фукцию, которая каждый раз принимает числои проверяет простоту, возвращает подтверждение -да или нет в мейн, а там уже поределяешь -если не простое -фиг с ним, а если простое -сравниваешь с н=)
1
alibaba314
18 / 18 / 1
Регистрация: 22.03.2009
Сообщений: 58
11.05.2009, 20:01  [ТС] #7
и я думаю в этом месте
for(i=2;i<=x/2;i++)
можно написать так for(i=2;i<=sqrt(x);i++) ?
0
Акелла
Сонный металюга
45 / 45 / 6
Регистрация: 10.05.2009
Сообщений: 295
11.05.2009, 20:02 #8
эм.... sqrt -это корень.... а тут половинка этого числа
0
rrrFer
Заблокирован
11.05.2009, 20:06 #9
Цитата Сообщение от alibaba314 Посмотреть сообщение
и я думаю в этом месте

можно написать так for(i=2;i<=sqrt(x);i++) ?
неправильно так будет, например число 16, корень даст 4, а 8 тоже является делителем. И еще лучше ввести переменную какую-нибудь тогда float s=sqrt(x) и сравнивать i<=s, а-то получается что на каждой итерации вычисляется корень, затратно получается.
1
dimon_91
10 / 10 / 1
Регистрация: 06.05.2009
Сообщений: 34
11.05.2009, 21:17 #10
Посмотри здесь:
http://ru.wikipedia.org/wiki/%D0%A1%...81%D0%B5%D0%BB

Только тут, как я понял, число N задаётся в программе. Переделай так, чтоб вводилось пользователем.
1
alibaba314
18 / 18 / 1
Регистрация: 22.03.2009
Сообщений: 58
11.05.2009, 21:54  [ТС] #11
я деляю так:
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
45
46
47
48
49
50
51
52
53
54
55
#include<stdio.h>
#include<conio.h>
int TestNT(int n)
{
    if(n<2)
        return 0;
    for(int i=2;i<n;i++)
        if(!(n%i))
            return 0;
            return 1;
}
void in(int a[][100],int &n,int &m)
{
    printf("row n=");
    scanf("%d",&n);
    printf("column m=");
    scanf("%d",&m);
    for(int i=0;i<n;i++)
        for(int j=0;j<m;j++)
        {
            printf("a[%d][%d]=",i+1,j+1);
            scanf("%d",&a[i][j]);
        }
}
void out(int a[][100],int n,int m)
{
    printf("matrix:\n");
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<m;j++)
            printf("%d\t",a[i][j]);
            printf("\n");
    }
}
void tempNT(int a[][100],int n,int m)
{
    int temp=0;
    for(int i=0;i<n;i++)
        for(int j=0;j<m;j++)
            if(TestNT(a[i][j])==1)
            {
                printf("%d\t",a[i][j]);
                temp++;
            }
    printf("\n%d proctoe.",temp);
}
void main()
{
    int a[100][100],m,n;
    in(a,n,m);
    out(a,n,m);
    printf("proctoe:");
    tempNT(a,n,m);
    getch();
}
я думаю, что i достаточно до sqrt(n)
0
Акелла
Сонный металюга
45 / 45 / 6
Регистрация: 10.05.2009
Сообщений: 295
11.05.2009, 22:16 #12
нафиг тебе там корень????
0
alibaba314
18 / 18 / 1
Регистрация: 22.03.2009
Сообщений: 58
11.05.2009, 22:33  [ТС] #13
там я ввел одну матрицу, и потом нашёл в ней все простые числа.
0
insolent
826 / 347 / 15
Регистрация: 30.01.2009
Сообщений: 1,204
11.05.2009, 23:10 #14
Вот тебе ф-ция:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
bool prov(int a){
    int i, k, flag;
    for (i = 2; i <= a; i++) {
        flag = 1;
        for (k = 2; k*k <= i; k++) {
            if (i % k == 0) {
                flag = 0;
                break;
            }
        }
    }
    if (flag == 1) 
        return 1; 
    else return 0;
}
А в цикле просмотра элементов вставь условие:
C++
1
2
if(prov(a[i][j]))
    cout << a[i][j] << " Простое." << endl;
1
alibaba314
18 / 18 / 1
Регистрация: 22.03.2009
Сообщений: 58
11.05.2009, 23:51  [ТС] #15
и
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 <stdio.h>
#include <conio.h>
#include <iostream.h>
int main( void )
 {
    int i, k, flag;
    int n; 
    printf(" nhap n:"); scanf("%d", &n);
    for (i = 2; i <= n; i++)
    {
        flag = 1;
        for (k = 2; k*k <= i; k++)
           {
            if (!(i % k) )
               {
                  flag = 0;
                  break;
               }
           }
        if (flag )
        {
            printf("%d ", i);
         }
    }
    return 0;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.05.2009, 23:51
Привет! Вот еще темы с ответами:

Дано натуральное число k. Получите все натуральные числа, меньшие k и взаимно простые с ним - C++
Тест. k=24. Результат. 1; 5; 7; 11; 13; 17, 19; 23. Помогите с написанием программы, желательно с комментариями..заранее спасибо.

Составьте программу, позволяющую найти все числа Фибоначчи, меньшие заданного числа N - C++
Помогите, пожалуйста. Вот сама задача: Пара кроликов каждый месяц дает приплод – двух кроликов (самца и самку), от которых через два...

Найти все числа меньшие числа Мерсенна - C++
Дано натуральное число n. Найти все числа меньшие Мр числа Мерсенна. Число Мерсенна – это простое число, представленное в виде Mp=2p–1, ...

Задача про простые числа. Выпишите все простые числа, находящиеся в интервале между а и б - C++
#include &lt;stdio.h&gt; #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; using std::cout; using std::cin; using...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
11.05.2009, 23:51
Ответ Создать тему
Опции темы

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