PDA

Показать полную графическую версию : Найти все простые, совершенные и полиндромы на заданном промежутке в Си


partisanus
16-12-2012, 15:02
Долго мучался, но все-таки решил.
Может кому-то пригодится...

#include<stdio.h>
#include<math.h>


void main()
{int pr,sov,a,b=1,c=0,d,pol,t;
for(a=10;a<=100;a++) //перебираем все числа в заданном диапазоне
{
for(b=1,pr=0;b<a;b++) //перебор чисел от 1 до "а"
{t=a%b; //определение остатка от деления
if(t==0) //определение делителя(если остаток от деления 0, значит делитель)
pr+=b; //Складываем все делители числа "а"
}
if(pr<2) //если сумма делителей равна 1(единственный делитель числа, кроме его самого равен 1)
printf("%d-prostoe chislo\n",a); //значит число является простым и выводим как простое
if(pr==a) //если сумма делителей равна самому числу "а"
printf("%d-sovershennoe chislo\n", a); //значит число совершенное выводим как совершенное
c=a;
for(c,pol=0;c>=1;c=c/10) //создаем число "перевертышь" (число 12345, его "перевертышь" 54321)
{d=c%10; //путем определения остатка от деления на 10
c=c-d; //отнимая последнюю цифру и деля на 10 исходное число(в начале цикла)
pol=(pol*10)+d; //формируем число "перевертышь"
}

if(a==pol) //сравниваем число перевертышь с исходным "а"
printf("%d- polindrom\n",a); //если исходное и "перевертышь" равны, значит полиндром и выводим как полиндром

}
}
}

Drongo
17-12-2012, 22:17
partisanus, Конечно пригодится. :) Спасибо.

monklord
02-05-2013, 00:07
только вопрос, а зачем c=c-d;c=c-d; »
вот эта строка
она же не играет никакой роли?




© OSzone.net 2001-2012