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

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

Войти
Регистрация
Восстановить пароль
 
VLAD1M1R
0 / 0 / 0
Регистрация: 04.11.2009
Сообщений: 55
#1

Программа с простыми числами - C++

21.01.2010, 12:43. Просмотров 873. Ответов 6
Метки нет (Все метки)

Здравствуйте, мне дали такое условие: "В файле записаны числа. С клавиатуры вводится число. Требуется вывести на экран все простые числа, не содержащие этой цифры (которую вводим с клавиатуры). Отсортировать их по сумме цифр." Буду очень благодарен, если поможете написать программу..

Добавлено через 20 минут
У меня есть похожая программа, только с буквами ("Есть файл, в нем слова. с клавы вводится буква, вывести на экран все слова в которой никакая буква кроме введенной в клавы не встречается, слова отосрт. по длине) Если это поможет, то могу выложить...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.01.2010, 12:43     Программа с простыми числами
Посмотрите здесь:

Программа на С с простыми числами C++
C++ Программа с простыми числами
Заполнить массив простыми числами по возрастанию C++
C++ Целочисленная матрица n*m . Найти номера строк с простыми числами
C++ Найти все натуральные числа меньше N, которые одновременно являются числами Фибоначчи и простыми числами.
C++ Задача с простыми числами
C++ Создать двусвязный список с простыми числами
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Bloodykeeper
This party getting crazy!
78 / 74 / 1
Регистрация: 22.09.2009
Сообщений: 427
21.01.2010, 12:47     Программа с простыми числами #2
выложи, всё что есть то всегда поможет
VLAD1M1R
0 / 0 / 0
Регистрация: 04.11.2009
Сообщений: 55
21.01.2010, 12:50  [ТС]     Программа с простыми числами #3
хорошо, через пару минут скину
Day
1154 / 959 / 57
Регистрация: 29.10.2009
Сообщений: 1,385
21.01.2010, 13:03     Программа с простыми числами #4
Ежели ты умеешь работать с буквами, то остается только вместо слов сделать текстовое представление простых чисел. Однако здесь загвоздка. Простых чисел довольно много.
Даже очень много. Еще дядечка Эвклид доказал, что их бесконечно много. Поэтому приходится
слегка упростить задачу. Берем первые N простых чисел.
Принципиальная часть кода будет выглядеть так:
Код
const int N = 1000;
N[0] = 2;
k = 1;
for(j=3, k=1; k<1000; j+=2) {
    for(i=1; i<k; i++) {
       if ((j%N[i])==0) break;  // Число j оказалось не простым
    }
    if (i==k) { // j так ни на что не  разделилось
       N[k++] = j; 
    }
}
// Алгоритм не самый оптимальный, но должен работать
// Перевод числа в строчку делается так
  char s[100];
  sprintf(s, "%d", N[i]);
Не проверял. Возможны описки
VLAD1M1R
0 / 0 / 0
Регистрация: 04.11.2009
Сообщений: 55
21.01.2010, 13:14  [ТС]     Программа с простыми числами #5
насчет простых чисел: в задании имеется ввиду, что нужно вывести все простые числа из файла (т.е. те, которые я сам прописал в txt, как я понял) У меня есть множество чисел в файле. Я ввожу с клавы число, а затем нужно чтобы на экране появились все простые числа, которые не содержат той цифры, что я ввел с клавы. (как то так)
Day
1154 / 959 / 57
Регистрация: 29.10.2009
Сообщений: 1,385
21.01.2010, 13:20     Программа с простыми числами #6
Пока отвечал, забыл, что числа читаются из файла.
Тогда надо просто проверить их на простоту
Код
  M - число
  int k = sqrt(M);
  for(j=2; j<=k; j++)
    if ((M%j)==0) break;
  if (j==k) // число M простое
  else       // не простое
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.01.2010, 13:36     Программа с простыми числами
Еще ссылки по теме:

C++ Заполнить массив размером в 1000 простыми числами
C++ Заполнить массив n*m простыми числами
Вывести все элементы массива, являющиеся простыми числами C++
C++ Заполнить массив десятью первыми простыми числами
Квадратная матрица, номера столбцов с двумя простыми числами C++

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

Или воспользуйтесь поиском по форуму:
VLAD1M1R
0 / 0 / 0
Регистрация: 04.11.2009
Сообщений: 55
21.01.2010, 13:36  [ТС]     Программа с простыми числами #7
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
#include "stdafx.h"
#include <math.h>
#include <fstream>
#include <iostream>
#include <string.h>
using namespace std;
int repeat(char *a, char *b)
{
    int flag=0;
    for (int i=0;i<strlen(a);i++)
        for (int r=i+1;r<strlen(a);r++)
        {
            if (a[i]==a[r])
                if (a[i]!=b[0])
                {
                    return 0;
                    break;
                }
        }
    return 1;
 
}
int _tmain(int argc, _TCHAR* argv[])
{
    int i=0;
    char a[1], s[100][100],q[100],t[100];
    fstream f("my.txt");
    cin>>a;
    while (!f.eof())
    {
        f>>q;
        if (repeat(q,a))
            strcpy_s(s[i++],q);
    }
    for (int j=0;j<i;j++)
        for (int k=0;k<i-1;k++)
            if (strlen(s[k])>strlen(s[k+1]))
                {
                    strcpy_s(t,s[k]);
                    strcpy_s(s[k],s[k+1]);
                    strcpy_s(s[k+1],t);
                }
    for (int r=0;r<i;r++)
        cout<<s[r]<<" ";
 
    return 0;
}
Вот условие этой задачи:
Есть файл, в файле слова,с клавы вводится буква,вывести на экран все слова в которой никакая буква
кроме введенной с клавы не встречается,слова отсортировать по длине.

Добавлено через 3 минуты
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
#include "stdafx.h"
#include <iostream>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    int a, count=0, mas[1000], mas2[1000], N=0, sum=0;
    cin>>a;
    for (int i=0; i<1000; i++)
    {
        count=0;
        for (int j=1; j<=i; j++)
            if (i%j==0)
                count++;
        if (count==a)
        {
            mas2[N]=mas[N]=i;
            N++;
        }
    }
 
    for (int p=0; p<N; p++)
        for (int schet=0; schet<N-1; schet++)
        {
            sum=0;
            int sum2=0;
            while (mas[schet]>0)
            {
                sum=sum+mas[schet]%10;
                mas[schet]=mas[schet]/10;
            }
            while (mas[schet+1]>0)
            {
                sum2=sum2+mas[schet+1]%10;
                mas[schet+1]=mas[schet+1]/10;
            }
            if (sum2<sum)
            {
                int t=mas2[schet];
                mas2[schet]=mas2[schet+1];
                mas2[schet+1]=t;
            }
            mas[schet]=mas2[schet]; mas[schet+1]=mas2[schet+1];
        }
    for (int k=0; k<N; k++)
        cout<<mas2[k]<<" ";
    return 0;
}
Выкладываю еще одну программу, в надежде что она хоть чем то поможет.. Условие: "Количество делителей равно числу введенному с клавы." Тут присутствует сортировка по сумме цифр (в моей программе это тоже требуется

Добавлено через 1 минуту
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
#include "stdafx.h"
#include <iostream>
#include <math.h>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    
    for (int a=1; a<2000; a++)
    {   int flag=0;
        for (int i=2; i<a; i++)
        {
            if (a%i==0)
            {
                flag=1;
                break;
            }
        }
    
    if (flag==0)
        cout<<a<<" ";
    }                   
    return 0;
}
А это все простые числа до 2000 (на всякий случай)

Добавлено через 2 минуты
Буду очень благодарен, если поможете объединить все это в полноценную, нужную мне программу. Надеюсь, то что я выложил, как то поможет..
з.ы. Времени у меня осталось всего пару часов...
Yandex
Объявления
21.01.2010, 13:36     Программа с простыми числами
Ответ Создать тему
Опции темы

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