Ввести натуральное число n и вывести все натуральные числа, не превосходящие n и делящиеся на каждую из своих цифр. пример: введите n: 15 1 2 3 4 5 6 7 8 9 11 12 15

ЛолТролло ЛолТролло    1   25.07.2019 01:50    29

Ответы
Littlefaife555 Littlefaife555  24.09.2020 10:02
Var n,i,k,d:integer; b:boolean;
begin
write('n = '); readln(n);
for i:=1 to n do
 begin
  b:=true;
  k:=i;
  while b and (k>0) do 
   begin
    d:=k mod 10;
    if d<>0 then b:=b and (i mod d = 0) else b:=false;
    k:=k div 10; 
   end;
   if b then write(i,' ');
 end;
 writeln;
end.

Пример:
n = 25
1 2 3 4 5 6 7 8 9 11 12 15 22 24 
ПОКАЗАТЬ ОТВЕТЫ
Тане44ка Тане44ка  23.10.2020 23:36
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>

int main() {
    int n,k,pr;
    printf("n = ");
    scanf("%i",&n);
 //поиск чисел
    for (int i=1; i<n+1; i++)
    {
       k=i;  pr=0;
       while (k>0)
       {
          if (((k % 10)==0) or (i % (k % 10)>0))
          {  pr=1;  break;  }
          k=k/10;
       }
      if (pr==0)  printf("%i  ",i);
    }
    printf("\n");
    getch();
    return(0);
}
ПОКАЗАТЬ ОТВЕТЫ
НЕГЛУПЫЙ26 НЕГЛУПЫЙ26  23.10.2020 23:36
2) Program asd;
USES crt;
Var n,i,t,p:integer;
BEGIN
Clrscr;
readln(n);
for i:=1 to n do
begin
t:=i;
p:=1;
repeat
p:=p*(t mod 10);
t:=t div 10;
until t=0;
if (p<>0)and(i mod p=0)
then
write(i,' ');
end;
Readln;
END.
Сейчас первую дорешаю
ПОКАЗАТЬ ОТВЕТЫ
Vladijad Vladijad  23.10.2020 23:36

def IsDivAll(obj:int, divs:list)->bool:

   if 0 in divs: return False

   for divisor in divs:

       if obj % divisor != 0:

           return False

   return True  

def number_to_digits(number:int)->list:

   return list(map(int, list(str(number))))

N = int(input())

for i in range(1, N+1):

   if IsDivAll(i, number_to_digits(i)): print(i)

Объяснение:


решить с циклов. Ввести натуральное число N и вывести все натуральные числа, не превосходящие N и де
ПОКАЗАТЬ ОТВЕТЫ
alicianovikova alicianovikova  23.10.2020 23:36

def NoRemByEachNum(x):

   temp = x

   while(temp > 0):

       if(temp%10==0): return False

       elif(not(x%(temp%10)==0)): return False

       else: temp=int(temp/10)

   return True

for i in range(0,int(input('N = '+'\n'))+1):

   if(NoRemByEachNum(i)): print(i)


решить с циклов. Ввести натуральное число N и вывести все натуральные числа, не превосходящие N и де
ПОКАЗАТЬ ОТВЕТЫ
gasi20022 gasi20022  23.10.2020 23:36

var n,i,k,d: integer; b: boolean;

begin

write('n = '); readln(n);

for i: =1 to n do

  begin

  b: =true;

  k: =i;

  while b and (k> 0) do 

    begin

    d: =k mod 10;

    if d< > 0 then b: =b and (i mod d = 0) else b: =false;

    k: =k div 10;  

    end;

    if b then write(i,' ');

  end;

  writeln;

end.

ПОКАЗАТЬ ОТВЕТЫ
samudoma2006 samudoma2006  23.10.2020 23:36

var n,i,k,d: integer; b: boolean;

begin

write('n = '); readln(n);

for i: =1 to n do

  begin

  b: =true;

  k: =i;

  while b and (k> 0) do 

    begin

    d: =k mod 10;

    if d< > 0 then b: =b and (i mod d = 0) else b: =false;

    k: =k div 10;  

    end;

    if b then write(i,' ');

  end;

  writeln;

end.

пример:

n = 25

1 2 3 4 5 6 7 8 9 11 12 15 22 24 

ПОКАЗАТЬ ОТВЕТЫ
Zahardenicuk Zahardenicuk  23.10.2020 23:36
В c++

#include <iostream>
int main()
{
    using namespace std;
    unsigned long int N;
    cout << "Enter natural number: ";
    cin >> N;
    for (int i = 1; i < N; i++)
    {
        int j = i;
        while (j % 10 != 0 && i % (j % 10) == 0)
                j = j / 10;
        if (j == 0)
            cout << i << "  ";
    }
    cout << endl;
    return 0;
}
ПОКАЗАТЬ ОТВЕТЫ
nhxjjxjx nhxjjxjx  23.10.2020 23:36
Задание №1.

k = int(input('Начало диапазона '))
n = int(input('Конец диапазона '))
a = [0] * n # создание массива с n количеством элементов
for i in range(n): # заполнение массива
   a[i] = i
a[1] = 0

m = 2 # замена на 0 начинается с 3-го элемента

while m < n: # перебор всех элементов до заданного числа
  if a[m] != 0:
     j = m * 2
    while j < n:
        a[j] = 0
        j = j + m
       m += 1

# вывод простых чисел на экран
b = []
for i in a:
      if a[i] != 0 and i >= k:
      b.append(a[i])

del a
print(b)

Задание №2

count = 0
for i in range(13):
    for j in range(11):
        for k in range(9):
            if 185 == i*15+j*17+k*21:
                count += 1
                print(i,j,k)
print('Всего

Задание №3

x = int(input())
print('\n'.join(
str(n) for n in range(x+1)
if all(x != 0 and n % x == 0 for x in map(int, str(n
ПОКАЗАТЬ ОТВЕТЫ
290720031 290720031  23.10.2020 23:36
ответ в текстовом файле. Python 2. 7. 10
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика