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

Нахождение и запись в массив простых чисел с повторяющимися цифрами

03.12.2010, 17:57. Показов 1304. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Не могу разобраться с задачей.
Собственно условие такое - нужно вывести все простые числа не превышающие N но в которых нету повторяющихся чисел , тоесть числа 11,113 не подойдут.
Проблема возникла с определением одинаковых цифр в числе.Я хотел организовать чтобы единицы десятки сотни и т.д. записывались в массив x[y] и если бы в массиве были одинаковые числа то , это число бы не выводилось.
В данной программе массив выводит чушь какую-то(скорее всего выходят за границу значения),алгоритм сравнения еще не писал с массивом бы разобраться.
Подскажите еще алгоритм нахождения одинаковых чисел в массиве.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream.h>
void main()
{double x[7];
int i,j,N,b,y,k;
cout<<endl<<"Введите N ";
cin>>N;
y=1;
for(i=3;i<=N;i++)
 {b=1;
   for (j=2;j<i;i++)
    if ((i%j)==0) b=0;
     if (b==1) { for (k=i;k>0;k=k/10)
                            {k=x[y];
                             y=y+1;}
for (y=1;y<=7;y++)
cout<<x[y]<<" ";    
}
}
}
прошу прощения за кривые предложения .
Заранее спасибо.
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.12.2010, 17:57
Ответы с готовыми решениями:

Надо ускорить алгоритм вычисления чисел с не повторяющимися цифрами
Помогите ускорить алгоритм. Надо определить все числа с не повторяющимися цифрами от 0 до...

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

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

Нахождение простых чисел
Доброго времени суток, форумчане! Написал программку, которая находит простые числа. Нормально...

2
377 / 228 / 79
Регистрация: 24.11.2009
Сообщений: 695
03.12.2010, 20:12 2
Не могу разобраться с задачей.
Собственно условие такое - нужно вывести все простые числа не превышающие N но в которых нету повторяющихся чисел , тоесть числа 11,113 не подойдут.
Доброго времени суток,
Обратите внимание, что в условии нет требования использовать массив. Учитывая, что фактически N не может быть больше 10^9 (иначе в нём обязательно встретятся две одинаковые цифры), то можно (а скорее всего и оптимально) решить полным перебором чисел от 1 до N с проверкой на простоту и на "повторяемость" цифр на лету. При этом для определения повторяемости нет никакой необходимости использовать массив.

--------------------------------------



решение
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
#include<iostream>
bool is_simple(int x);      // Вернёт истину, если х простое.
bool is_different(int x);   // Вернёт истину, если х состоит из различных цифр.
 
int main(void){
 
    int n;
    std::cin>>n;            //подразумеваем, что значение N корректно.
 
    for (int x = 1; x<=n; x++)
        if(is_simple(x)&&is_different(x)) 
            std::cout<<x<<std::endl;
 
 
return 0;
}
 
 
 
// собственно функции:
bool is_different(int x){
        
    while(x!=0){
        int tmp = x;
        int r = tmp%10;
        
        
        while(tmp != 0){
            tmp = (tmp - tmp%10)/10;
            if(tmp%10 == r) return false;
        }
        
        
        x = (x - x%10 )/10;
    }   
    
    return true;
 
}
 
bool is_simple(int x){
 
    if(x == 1) return true;
 
    for(int i=2; i*i <= x; i++)
        if (x%i == 0) return false;
    
    return true;
 
}
0
iUltramarine
04.12.2010, 10:01 3
спасибо за решение,попытаюсь разобрать его=)оно довольно сложно для первого курса

Добавлено через 46 минут
Боюсь что решение которое мне предложили не подойдёт , не могли бы указать на ошибку в моей программе.
04.12.2010, 10:01
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.12.2010, 10:01
Помогаю со студенческими работами здесь

Нахождение простых чисел в С++
Уважаемые форумчане, помогите пожалуйста сделать прогу работающей: #include&lt;iostream&gt; using...

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

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

Нахождение простых чисел-близнецов
Программа не выдаёт правильный ответ,если добавляю строчку с else... Дано натуральное число n....


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

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