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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.11.2012, 12:34   #1
maxick96
Пользователь
 
Регистрация: 18.02.2012
Сообщений: 45
По умолчанию двоичное представление числа и просто число

у меня трабла с задачей!помогите!
Составить функцию, которая определяет, является ли целое число простым.
Составить функцию, которая для целого числа определяет сумму единиц в двоичном представлении этого числа.
Вызывающая функция main() вводит целое число N и среди простых чисел, не превосходящих введенного натурального числа N, находит такое, запись которого в двоичной системе счисления содержит максимальное число единиц. Если таких чисел несколько, находит минимальное такое число.

вот то что сам намутил, но это бред

Код:
#include <math.h>
#include <iostream>
using namespace std;
int main()
{   
	setlocale(LC_ALL, "RUS");
    int b,t;
	float a;
	double i=1,sum;
    long c = 0;
	while(true)
	{ 
		cout<<"Введите целое число: ";
        long int N;
		cin>>N;

		if (N<=0||N>=100000000)
		{
			cout<<"Ошибка!";
		}
		else
		{
           for(int i=1;i<N;i++)
		   {
           if(N%i==0)
		   N++;
		   }
		   if(N>1)
		   {
		   cout<<"Простое число!";
		   }
			else
			{
				cout<<"Число не является простым!";
				return 0;
		    }
		}
     for(i=0;N > 0;i++)  //Определение суммы единиц для целого числа в двоичном представлении 
     {
        b = (N % 2);  
        t = (N-b)/2;
        c += b * pow(10,i);
     }
    cout<<"\nДвоичное число:"<<c<<endl;   
  }   
}

Последний раз редактировалось maxick96; 05.11.2012 в 12:38.
maxick96 вне форума Ответить с цитированием
Старый 05.11.2012, 12:43   #2
rmv240899
Форумчанин
 
Регистрация: 18.02.2012
Сообщений: 155
По умолчанию

1.
Код:
int main(){
    int n = 13;
    cin>>n;
    bool flag = true;
    for(int i = 2; i<=n/2; i++) {
        if(!(n % i)){
            flag = false;
            cout<<"Число не является простым"<<endl;
            break;
        }
    }
    if(flag) {
        cout<<"Число является простым"<<endl;
    }
}
rmv240899 вне форума Ответить с цитированием
Старый 05.11.2012, 12:49   #3
maxick96
Пользователь
 
Регистрация: 18.02.2012
Сообщений: 45
По умолчанию

так спасибо
но мне теперь нужно дальше по заданию
maxick96 вне форума Ответить с цитированием
Старый 05.11.2012, 13:33   #4
rmv240899
Форумчанин
 
Регистрация: 18.02.2012
Сообщений: 155
По умолчанию

2.
Код:
#include <iostream>
#include <deque>
using namespace std;

int main(){
	setlocale(LC_ALL, "");
	int a = 16;
	char buf[8];
	int countOne = 0;
	cin >> a;
	sprintf(buf, "%i", a);
	deque<int>a2;
	while(a>0){	
		a2.push_front(a%2);
		a/=2;
	}
	for(int i = 0; i<a2.size();i++){
		if(a2[i] == 1){
			countOne++;
		}
		cout<<a2[i];
	}
	cout<<endl;
	cout<<"Количество единиц: "<<countOne<<endl;
}
3.
Код:
#include <iostream>
#include <deque>
using namespace std;

int countOnes(int a){
	char buf[8];
	int countOne = 0;
	sprintf(buf, "%i", a);
	deque<int>a2;
	while(a>0){	
		a2.push_front(a%2);
		a/=2;
	}
	for(int i = 0; i<a2.size();i++){
		if(a2[i] == 1){
			countOne++;
		}
	}
	return countOne;
}
int main(){
	setlocale(LC_ALL, "");
	int a = 12;
	cin>>a;
	deque<int> simpleDig;
	deque<int> countOnesArr;
	int max;
	for(int i = 1; i<=a; i++){
		bool flag = true;
		for(int j = 2; j<=i/2; j++){
			if(!(i%j)){
				flag = false;
				break;
			}
		}
		if(flag){
			simpleDig.push_back(i);
		}
	}
	for(int i = 0; i<simpleDig.size(); i++){
		countOnesArr.push_back(countOnes(simpleDig[i]));
	}
	max = countOnesArr[0];
	int ind = 0;
	for(int i = 0; i<countOnesArr.size(); i++){
		if(countOnesArr[i]>max){
			max = countOnesArr[i];
			ind = i;
		}
	}
	cout<<"Число с максимальным количеством единиц: "<<simpleDig[ind]<<" ("<<max<<")"<<endl;
}
Минимум найти или сам попробуешь?

Последний раз редактировалось Stilet; 05.11.2012 в 14:59.
rmv240899 вне форума Ответить с цитированием
Старый 05.11.2012, 14:11   #5
maxick96
Пользователь
 
Регистрация: 18.02.2012
Сообщений: 45
По умолчанию

найди пожалуйста
и объясни что такое deque,countOnesArr и SimpleDig
и самое главное
мне бы на 2 файла всю программу разделить

Последний раз редактировалось maxick96; 05.11.2012 в 14:17.
maxick96 вне форума Ответить с цитированием
Старый 05.11.2012, 15:40   #6
maxick96
Пользователь
 
Регистрация: 18.02.2012
Сообщений: 45
По умолчанию

мне нужно чтобы в одной проге были функции
а в другой чтобы ввод чисел и вывод ответа
maxick96 вне форума Ответить с цитированием
Старый 05.11.2012, 17:39   #7
rmv240899
Форумчанин
 
Регистрация: 18.02.2012
Сообщений: 155
По умолчанию

Цитата:
Сообщение от maxick96 Посмотреть сообщение
найди пожалуйста
и объясни что такое deque,countOnesArr и SimpleDig
и самое главное
мне бы на 2 файла всю программу разделить
deque
SimpleDig - массив простых чисел меньше введенного числа.
countOnesArr - это массив, который состоит из количества единиц простых чисел.

Разделить получится на 3 файла: Один хэдэр (с расширением .h) и два cpp-файла. В хэдэр пишешь прототип функции countOne, в одном cpp'шнике пишешь ее реализацию, в другой cpp'шник подключаешь хэдэр (надеюсь, знаешь как это делать) и пишешь main.

Цитата:
Сообщение от maxick96 Посмотреть сообщение
найди пожалуйста
Я и так много за тебя делаю
rmv240899 вне форума Ответить с цитированием
Старый 05.11.2012, 21:24   #8
maxick96
Пользователь
 
Регистрация: 18.02.2012
Сообщений: 45
По умолчанию

мне без массивов нужно
maxick96 вне форума Ответить с цитированием
Старый 05.11.2012, 21:26   #9
rmv240899
Форумчанин
 
Регистрация: 18.02.2012
Сообщений: 155
По умолчанию

Цитата:
Сообщение от maxick96 Посмотреть сообщение
мне без массивов нужно
Ну так сразу бы сказал. Я это переделывать не буду.
rmv240899 вне форума Ответить с цитированием
Старый 05.11.2012, 21:37   #10
maxick96
Пользователь
 
Регистрация: 18.02.2012
Сообщений: 45
По умолчанию

блин
ну пожалуйста
мне завтра утром лабу сдавать!
maxick96 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Двоичное представление fasty Помощь студентам 4 21.09.2012 17:47
Программа выдает двоичное представление целого числа в компьютере (на C) MooNDeaR Помощь студентам 5 06.08.2011 14:08
Перевод из натурального десятичного числа в двоичное представление(string) Berserk0 Помощь студентам 3 17.06.2011 00:52
преобразование десятично-точечной записи ip-адреса в их двоичное представление 0vavan0 Работа с сетью в Delphi 1 17.11.2010 09:40
двоичное число→десятичное astrozombie Паскаль, Turbo Pascal, PascalABC.NET 4 06.05.2009 08:32