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

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

Восстановить пароль Регистрация
 
iUltramarine
Сообщений: n/a
03.12.2010, 17:57     Нахождение и запись в массив простых чисел с повторяющимися цифрами #1
Не могу разобраться с задачей.
Собственно условие такое - нужно вывести все простые числа не превышающие 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]<<" ";    
}
}
}
прошу прощения за кривые предложения .
Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.12.2010, 17:57     Нахождение и запись в массив простых чисел с повторяющимися цифрами
Посмотрите здесь:

C++ Нахождение простых чисел в массиве
C++ Рекурсивное нахождение простых чисел
C++ Надо ускорить алгоритм вычисления чисел с не повторяющимися цифрами
Вложенный цикл. Нахождение простых чисел C++
C++ нахождение простых чисел до заданого числа n
Нахождение простых чисел.( C++
C++ Нахождение парных простых чисел с++
C++ Нахождение простых чисел в С++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vladimir.
155 / 155 / 10
Регистрация: 24.11.2009
Сообщений: 375
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;
 
}
iUltramarine
Сообщений: n/a
04.12.2010, 10:01     Нахождение и запись в массив простых чисел с повторяющимися цифрами #3
спасибо за решение,попытаюсь разобрать его=)оно довольно сложно для первого курса

Добавлено через 46 минут
Боюсь что решение которое мне предложили не подойдёт , не могли бы указать на ошибку в моей программе.
Yandex
Объявления
04.12.2010, 10:01     Нахождение и запись в массив простых чисел с повторяющимися цифрами
Ответ Создать тему
Опции темы

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