Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.01.2010, 13:46   #1
VL@D1M1R
Пользователь
 
Регистрация: 10.12.2009
Сообщений: 16
Стрелка Программа с простыми числами

Здравствуйте, мне дали такое условие: "В файле записаны числа. С клавиатуры вводится число. Требуется вывести на экран все простые числа, не содержащие этой цифры (которую вводим с клавиатуры). Отсортировать их по сумме цифр." Буду очень благодарен, если поможете написать программу..
У меня есть очень похожая программа, только с буквами. Вот условие: "Есть файл, в нем слова. с клавы вводится буква, вывести на экран все слова в которой никакая буква кроме введенной в клавы не встречается, слова отосрт. по длине"
Вот ее код:
Код:
#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;
}

Последний раз редактировалось Stilet; 21.01.2010 в 13:53.
VL@D1M1R вне форума Ответить с цитированием
Старый 21.01.2010, 13:49   #2
VL@D1M1R
Пользователь
 
Регистрация: 10.12.2009
Сообщений: 16
По умолчанию

Вот еще одна программа, может она и не поможет, но тут есть сортировка по сумме цифр, которые мне требуется. Условие: "Кол-во делителей равно числу, введенному с клавы. Отсортировать по сумме цифр:
Код:
#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;
}

Последний раз редактировалось Stilet; 21.01.2010 в 13:53.
VL@D1M1R вне форума Ответить с цитированием
Старый 21.01.2010, 13:54   #3
MAKEDON
The First Person!
Форумчанин
 
Аватар для MAKEDON
 
Регистрация: 07.08.2007
Сообщений: 228
По умолчанию

А ограничения есть? Простые числа они..бесконечны
Программа обычно делает то что вы ей сказали сделать, а не то что бы вы хотели, чтобы она сделала.
MAKEDON вне форума Ответить с цитированием
Старый 21.01.2010, 13:59   #4
VL@D1M1R
Пользователь
 
Регистрация: 10.12.2009
Сообщений: 16
По умолчанию

как я понял из условия задачи, простые числа должны быть записаны в файле и после того как вводим цифру с клавиатуры, на экране должны появиться простые числа (из файла) в которых нет этой цифры... вот как то так... =)
VL@D1M1R вне форума Ответить с цитированием
Старый 21.01.2010, 14:04   #5
MAKEDON
The First Person!
Форумчанин
 
Аватар для MAKEDON
 
Регистрация: 07.08.2007
Сообщений: 228
По умолчанию

А, тогда это даже проще. Есть этот исходный файл с простыми числами?
Программа обычно делает то что вы ей сказали сделать, а не то что бы вы хотели, чтобы она сделала.
MAKEDON вне форума Ответить с цитированием
Старый 21.01.2010, 14:07   #6
VL@D1M1R
Пользователь
 
Регистрация: 10.12.2009
Сообщений: 16
По умолчанию

Как я понял, из условия, простые числа у нас должны находится в файле и после того, как вводим с клавы произвольное число, на экране должно появиться простое число не содержащее введенную цифру (как то так...)
В принципе, можно сделать и по другому... Взять например все простые числа до 2000.. Если так вам будет проще, могу выложить код.
Простые числа до 2000:
Код:
#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;
}

Последний раз редактировалось Stilet; 21.01.2010 в 14:45.
VL@D1M1R вне форума Ответить с цитированием
Старый 21.01.2010, 14:08   #7
VL@D1M1R
Пользователь
 
Регистрация: 10.12.2009
Сообщений: 16
По умолчанию

сорри за повтор, проблемы со связью...
Если вы имеете ввиду просто файл с простыми числами, то да, есть..
VL@D1M1R вне форума Ответить с цитированием
Старый 21.01.2010, 14:14   #8
MAKEDON
The First Person!
Форумчанин
 
Аватар для MAKEDON
 
Регистрация: 07.08.2007
Сообщений: 228
По умолчанию

Да, именно файл. Если есть файл, то проще решать эту задачи через массив чисел. Копируй содержимое файла.
Программа обычно делает то что вы ей сказали сделать, а не то что бы вы хотели, чтобы она сделала.
MAKEDON вне форума Ответить с цитированием
Старый 21.01.2010, 14:17   #9
VL@D1M1R
Пользователь
 
Регистрация: 10.12.2009
Сообщений: 16
По умолчанию

Если вам проще первый вариант, это даже лучше (мне главное чтоб программа работала), но можете и вторым воспользоваться..
Вы попробуете написать программу?..
VL@D1M1R вне форума Ответить с цитированием
Старый 21.01.2010, 14:25   #10
MAKEDON
The First Person!
Форумчанин
 
Аватар для MAKEDON
 
Регистрация: 07.08.2007
Сообщений: 228
По умолчанию

В общем, я сейчас закончу с делами и напишу для набора чисел:

2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149.

Окей?
Программа обычно делает то что вы ей сказали сделать, а не то что бы вы хотели, чтобы она сделала.
MAKEDON вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на матрицу с простыми числами Dead Romantic Помощь студентам 6 25.12.2009 18:42
Делимся идеями (простыми, но до которых все-равно нужно додуматься) Jora_Kornev Общие вопросы Delphi 3 11.01.2009 14:18
Pascal, трудности с простыми задачами. Кагбе_Прогер Помощь студентам 7 01.12.2008 18:14
Помогите с простыми задачками, труд могу оплатить M1HAN Паскаль, Turbo Pascal, PascalABC.NET 4 15.05.2008 15:21