Автор: cheops (25.12.2011 в 01:40)
>Здрасвуйте, подскажите пожалуйста, а возможно ли вэтой программе поменять цикл do while на
>for в главной функции?
Да, это возможно.
#include <stdio.h>
#include <iostream>
using namespace std;
// Прототип функции
int is_isbyt_number(int);
// Главная функция
int main()
{
int i = 0;
// Флаги для прекращения поиска
int flgodd = 0, flgeven = 0;
for(i = 0; flgeven < 2 || flgodd < 1; i++)
{
if(is_isbyt_number(i))
{
if(i % 2 && flgodd == 0)
{
// Нечетное число
flgodd++;
cout << "Первое нечетное избыточное число - " << i << endl;
}
if(!(i % 2) && flgeven < 2)
{
// Четное число
flgeven++;
if(flgeven == 1) cout << "Первое четное избыточное число - " << i << endl;
if(flgeven == 2) cout << "Второе четное избыточное число - " << i << endl;
}
}
}
// Пауза перед закрытием
system("PAUSE");
return 0;
}
// Является ли число избыточным?
int is_isbyt_number(int number)
{
int i = 1, total = 0;
if(number <= 0) return 0;
for(i = 1; i <= number; i++)
{
if(!(number % i)) total += i;
}
if(total > 2 * number) return 1;
else return 0;
} |