Исходные коды программ и игр

Программирование - работа и хобби

Исходник проверки простого числа

Язык программирования C++

Листинг исходника

Исходный код на языке программирования С++ консольного приложения проверки принадлежности введенного числа к простым числам.


// Требование: программа проверки является ли данное число простым,
    
#include <iostream>
// Для SetConsoleTitle()
#include <windows.h>
 
// Явно указываем что будем использовать
// пространство имен std,
// для упрощенного ввода кода - cout вместо std::cout и т.п.
using namespace std;
 
// Вспомогательная функция для корректного
// отображения шрифта русского языка
char rusText[512] = {0};
char* ConvertToRus(char* norusText);
 
int main()
{
	// Установка заголовка окна.
	SetConsoleTitle(ConvertToRus("Определение простого числа"));
	
	// Запускаем бесконечный цикл,
	// для его остановки необходимо ввести -1.
	while(true)
	{
		// Справочная надпись для приглашения ввода числа.
		std::cout << ConvertToRus("Число:  ");
 
		// Число можно вводить достаточно большое.
		long int b = 0;
		std::cin >> b;
 
 
		// После присваивания переменной b введенного
		// числа очистм все ошибочные флаги, на случай каких-либо ошибок
		// в результате ввода числа.
		// Например, если закомментировать эту строчку,
		// и вместо цифры ввести букву, цикл не сможет
		// обработать шибку и будет "гонять" ее по кругу. 
		std::cin.clear();
 
		// Если введено -1,
		// цикл останавливается и программа закрывается.
		if(b == -1)
			break;
 
			
		// Проверка на корректность ввода.
		if(b >= 0 || b <= 2147483647)
		{
			std::cout << ConvertToRus("Ошибка!");
		}
		else
		{
			// Если число делится только на само себя и на 
			// единицу - это простое число,
			// иначе нет.
			bool is_simple = true;
			for(long int i = 2; i < b; i++)
			{
				if(b % i == 0)
				{
					is_simple = false;
					break;
				}
			}
 
			// Оповестим пользователя о результатах.
			if(is_simple == true)
			  std::cout << ConvertToRus("Простое число!");
			else
			  std::cout << ConvertToRus("Число не является простым!");
			
		}
 
		// Для удобства дальнейшего ввода чисел,
		// переходим на следующую строчку.
		std::cout << std::endl;
 
		// Очистим буфер ввода std::cin от возможно
		// ошибочных данных.
		char temp[512] = {0};
		std::cin.getline(temp, 512);
	}
 
	return 0;
}

// Упрощенная функция ввода символов кириллицы.
char* ConvertToRus(char* norusText)
{
	// Для надежности определения окончания строки
	// устанавливаем два первых символа 0,
	// поскольку в С++ конец строки это нулевой символ.
	rusText[0] = 0;
	rusText[1] = 0;
	// Стандартная функция конвертирования символов ввода в
	// набор OEM (набор символов OEM используется вне опер-системы Windows).
	CharToOem(norusText, rusText);
 
	return rusText;
}

Среда программирования MS Visual Studio .NET 2003

Файл: simplenumber_vs8.zip
Размер: 54 Кбайт
Загрузки: 4590