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

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

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

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

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

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

помогите ....! пожалуйста
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.05.2009, 18:56     Найти простые числа, меньшие n
Посмотрите здесь:
C++ Получить все натуральные числа, меньшие n и взаимно простые с p
C++ Распечатать все простые сдвоенные числа меньшие заданного
C++ Дано натуральное число k. Получите все натуральные числа, меньшие k и взаимно простые с ним
C++ Составьте программу, позволяющую найти все числа Фибоначчи, меньшие заданного числа N
Найти все числа меньшие числа Мерсенна C++
Найти все совершенные числа меньшие заданного C++
C++ Найти все совершенные числа, меньшие заданного
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Rififi
2359 / 1054 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
11.05.2009, 19:00     Найти простые числа, меньшие n #2
с++ Решето Эратосфена
Акелла
Сонный металюга
45 / 45 / 6
Регистрация: 10.05.2009
Сообщений: 295
11.05.2009, 19:12     Найти простые числа, меньшие n #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);
}
ISergey
Maniac
Эксперт С++
1373 / 884 / 52
Регистрация: 02.01.2009
Сообщений: 2,653
Записей в блоге: 1
11.05.2009, 19:20     Найти простые числа, меньшие n #4
Цитата Сообщение от Rififi Посмотреть сообщение
с++ Решето Эратосфена
alibaba314
18 / 18 / 1
Регистрация: 22.03.2009
Сообщений: 58
11.05.2009, 19:32  [ТС]     Найти простые числа, меньшие n #5
Акелла,
спасибо! но я хотел бы найти простые числа, которые < n.

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

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

Только тут, как я понял, число N задаётся в программе. Переделай так, чтоб вводилось пользователем.
alibaba314
18 / 18 / 1
Регистрация: 22.03.2009
Сообщений: 58
11.05.2009, 21:54  [ТС]     Найти простые числа, меньшие n #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)
Акелла
Сонный металюга
45 / 45 / 6
Регистрация: 10.05.2009
Сообщений: 295
11.05.2009, 22:16     Найти простые числа, меньшие n #12
нафиг тебе там корень????
alibaba314
18 / 18 / 1
Регистрация: 22.03.2009
Сообщений: 58
11.05.2009, 22:33  [ТС]     Найти простые числа, меньшие n #13
там я ввел одну матрицу, и потом нашёл в ней все простые числа.
insolent
826 / 347 / 15
Регистрация: 30.01.2009
Сообщений: 1,204
11.05.2009, 23:10     Найти простые числа, меньшие n #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;
alibaba314
18 / 18 / 1
Регистрация: 22.03.2009
Сообщений: 58
11.05.2009, 23:51  [ТС]     Найти простые числа, меньшие n #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;
}
Neotwalker
21 / 1 / 0
Регистрация: 22.12.2013
Сообщений: 137
22.04.2015, 09:08     Найти простые числа, меньшие n #16
insolent, что такое flag в этом коде?
Байт
Эксперт C
15833 / 10160 / 1522
Регистрация: 24.12.2010
Сообщений: 19,148
22.04.2015, 10:08     Найти простые числа, меньшие n #17
Цитата Сообщение от Neotwalker Посмотреть сообщение
что такое flag в этом коде?
Флажок, признак того, что число простое.
Сначала предполагается, что число простое flag=1 (презумкция невиновности).
Если по ходу выясняется, что число на кого-то делится, оно обвиняется в непростоте (flag=0)
Neotwalker, простите, не допонял. Это я поясняю код из поста 15.
А в посте 14 и впрямь не просто понять, что такое flag и на фига он нужен. Это, конечно, к автору.
ValeryS
Модератор
6550 / 5016 / 463
Регистрация: 14.02.2011
Сообщений: 16,729
22.04.2015, 10:24     Найти простые числа, меньшие n #18
Цитата Сообщение от Байт Посмотреть сообщение
А в посте 14 и впрямь не просто понять, что такое flag и на фига он нужен.
так для этого же но автор слишком много возложил на break
выбросит из одного только цикла, в результате проверит только одно число a
и нафига здесь два цикла???
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.05.2015, 11:35     Найти простые числа, меньшие n
Еще ссылки по теме:
C++ Найти все числа Мерсена, меньшие заданного n
C++ Найти числа-близнецы: простые числа разность между которыми равна 2
Найти простые числа с суммой цифр меньше заданного числа C++
Найти сверхпростые числа: простые числа, номера которых являются простыми числами. C++
Найти все натуральные числа, меньшие чем N, для которых выполняется соотношение C++

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

Или воспользуйтесь поиском по форуму:
Neotwalker
21 / 1 / 0
Регистрация: 22.12.2013
Сообщений: 137
20.05.2015, 11:35     Найти простые числа, меньшие n #19
И еще, тут метод перебора используется?
Yandex
Объявления
20.05.2015, 11:35     Найти простые числа, меньшие n
Ответ Создать тему
Опции темы

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