Листинг исходника
Исходный код на языке программирования С++ консольного приложения проверки принадлежности введенного числа к простым числам.
// Требование: программа проверки является ли данное число простым,
#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