Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.79/29: Рейтинг темы: голосов - 29, средняя оценка - 4.79
19 / 19 / 4
Регистрация: 22.03.2009
Сообщений: 57
1

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

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

Author24 — интернет-сервис помощи студентам
дано: введить число n, найти все простые числа <n

помогите ....! пожалуйста
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.05.2009, 18:56
Ответы с готовыми решениями:

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

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

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

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

18
MCSD: APP BUILDER
8794 / 1073 / 104
Регистрация: 17.06.2006
Сообщений: 12,602
11.05.2009, 19:00 2
с++ Решето Эратосфена
0
Сонный металюга
46 / 46 / 13
Регистрация: 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
Maniac
Эксперт С++
1464 / 965 / 160
Регистрация: 02.01.2009
Сообщений: 2,820
Записей в блоге: 1
11.05.2009, 19:20 4
Цитата Сообщение от Rififi Посмотреть сообщение
с++ Решето Эратосфена
0
19 / 19 / 4
Регистрация: 22.03.2009
Сообщений: 57
11.05.2009, 19:32  [ТС] 5
Акелла,
спасибо! но я хотел бы найти простые числа, которые < n.

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

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

Только тут, как я понял, число N задаётся в программе. Переделай так, чтоб вводилось пользователем.
1
19 / 19 / 4
Регистрация: 22.03.2009
Сообщений: 57
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
Сонный металюга
46 / 46 / 13
Регистрация: 10.05.2009
Сообщений: 295
11.05.2009, 22:16 12
нафиг тебе там корень????
0
19 / 19 / 4
Регистрация: 22.03.2009
Сообщений: 57
11.05.2009, 22:33  [ТС] 13
там я ввел одну матрицу, и потом нашёл в ней все простые числа.
0
829 / 352 / 64
Регистрация: 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
19 / 19 / 4
Регистрация: 22.03.2009
Сообщений: 57
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
21 / 1 / 1
Регистрация: 22.12.2013
Сообщений: 196
22.04.2015, 09:08 16
insolent, что такое flag в этом коде?
0
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
22.04.2015, 10:08 17
Цитата Сообщение от Neotwalker Посмотреть сообщение
что такое flag в этом коде?
Флажок, признак того, что число простое.
Сначала предполагается, что число простое flag=1 (презумкция невиновности).
Если по ходу выясняется, что число на кого-то делится, оно обвиняется в непростоте (flag=0)
Neotwalker, простите, не допонял. Это я поясняю код из поста 15.
А в посте 14 и впрямь не просто понять, что такое flag и на фига он нужен. Это, конечно, к автору.
1
Модератор
Эксперт по электронике
8909 / 6678 / 918
Регистрация: 14.02.2011
Сообщений: 23,524
22.04.2015, 10:24 18
Цитата Сообщение от Байт Посмотреть сообщение
А в посте 14 и впрямь не просто понять, что такое flag и на фига он нужен.
так для этого же но автор слишком много возложил на break
выбросит из одного только цикла, в результате проверит только одно число a
и нафига здесь два цикла???
0
21 / 1 / 1
Регистрация: 22.12.2013
Сообщений: 196
20.05.2015, 11:35 19
И еще, тут метод перебора используется?
0
20.05.2015, 11:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.05.2015, 11:35
Помогаю со студенческими работами здесь

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

Функция определяющая все натуральные числа, меньшие N и взаимно простые с р
Даны натуральные числа N и р. Получить все натуральные числа, меньшие N и взаимно простые с р.

Вложенные циклы: получить все натуральные числа, меньшие n и взаимно простые с ним
Условие: Дано натуральное число n. Получить все натуральные числа, меньшие n и взаимно простых с...

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


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru