Другие языки программирования и технологии

Помогите найти алгоритм вычисления простых чисел

Задание: 5.Среди всех четырехзначных чисел получить все простые числа, каждое из которых обладает тем свойством, что сумма первых двух цифр равна сумме двух последних цифр. Числа я уже нашёл. Осталось теперь простые отсеять. часть моего кода( он не пашет((( ): z=0; i=1; while(i
AC
Andrey Chumakov
122
Доброго времени суток.

Все достаточно просто. Выделяем первые и последние две цифры числа N (по условию оно четырехзначное)

N12 := N div 100;
N34 := N mod 100;

А затем проверяем на равенство суммы цифр

if (N12 div 10) + (N12 mod 10) = (N34 div 10) + (N34 mod 10) then WriteLn('Суммы равны');

Или вам надо на простоту проверить? Тогда можно сделать, например, так

{проверяет число на принадлежность к простым}
function IsSimple(p: Integer): Boolean;
var i, k : Integer;
begin
IsSimple := True; {предположим, что простое}
if (p = 0) or (p = 1) then IsSimple := False; {ноль и единица не простые}

k := Trunc(Sqrt(p)); {верхняя граница диапазона поиска делителей}
for i:=2 to k do {от двух до верхней границы ищем делитель числа p}
if p mod i = 0 then begin
IsSimple := False; {если нашелся, значит не простое}
Break;
end;
end;

Удачи!
Иван Притчин
Иван Притчин
59 613
Лучший ответ
не мойму, к чему этот код?? ?
Я бы использовал оператор IF.
E.G. If I1+I2 = I3+I4 then....
незнаю
Максим Ш-Ов
Максим Ш-Ов
779
sieve(100000);//решето эратосфена
for (i=1000;i<10000;i++) {
if (isPrime == 0) { // если i - простое
int a = i % 10 + i / 10 % 10;//сумма первых двух
int b = i/100 % 10 + i / 1000 % 10;//сумма вторых двух
if (a == b) {
std::cout << i << " ";
}
}
}
Решето гуглите, есть готовые реализации

Похожие вопросы