Другие языки программирования и технологии
Помогите найти алгоритм вычисления простых чисел
Задание: 5.Среди всех четырехзначных чисел получить все простые числа, каждое из которых обладает тем свойством, что сумма первых двух цифр равна сумме двух последних цифр. Числа я уже нашёл. Осталось теперь простые отсеять. часть моего кода( он не пашет((( ): z=0; i=1; while(i
Доброго времени суток.
Все достаточно просто. Выделяем первые и последние две цифры числа 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;
Удачи!
Все достаточно просто. Выделяем первые и последние две цифры числа 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;
Удачи!
не мойму, к чему этот код?? ?
Я бы использовал оператор IF.
E.G. If I1+I2 = I3+I4 then....
Я бы использовал оператор IF.
E.G. If I1+I2 = I3+I4 then....
незнаю
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 << " ";
}
}
}
Решето гуглите, есть готовые реализации
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 << " ";
}
}
}
Решето гуглите, есть готовые реализации
Похожие вопросы
- Помогите найти, алгоритм нахождения Произведения простых чисел, на С++, или литературу которая поможет разобраться.
- Помогите найти алгоритм подбора множителей к числам заданного массива, сумма произведений которых равна заданному числу
- помогите составить алгоритм вычисления площади трапеции по двум основаниям и высоте. На языке программирования Basic
- Приведите алгоритмы нахождения простых чисел в заданном промежутке
- c++ сильно завис алгоритм нахождения простых чисел - пару вопросов ?
- нужно решение с++. С клавиатуры вводится 13 целых чисел, найти позиции всех простых чисел.
- Найти все такие простые числа, не превосходящие заданного N, двоичная запись которых представляет собой симметричную
- Программирование. Опишите на языке программирования алгоритм вычисления...
- как посчитать 365! (С++) Нужен алгоритм вычисления факториала больших чисел.
- Используя функцию find_if найти первое простое число