Напишите в комментариях к этой записи консольные приложения для решения этих задач, укажите также код задачи. Пример решения.
Решены задачи: 1-9, 12. Не решены: 10-11, 13.
Задачи
Z1.1. Вывести на экран все целые числа от 100 до 200, кратные трем.
Z1.2. Вывести на экран все целые числа от a до b, кратные некоторому числу c.
Z1.3. Найти сумму положительных нечетных чисел, меньших 50.
Z1.4. Найти сумму целых положительных чисел из промежутка от a до b, кратных четырем.
Z1.5. Составить программу поиска четырехзначных чисел, которые при делении на 47 дают в остатке 43, а при делении на 43 дают в остатке 37.
Z1.6. Составить программу поиска четырехзначных чисел, которые при делении на 133 дают в остатке 125, а при делении на 134 дают в остатке 111.
Z1.7. Определить количество натуральных чисел из интервала от 100 до 500, сумма цифр которых равна 15. Подсказка.
Z1.8. Определить количество трехзначных натуральных чисел, сумма цифр которых равна целому числу n (0 ˂ n ˂= 27).
Z1.9. Найти:
а) все двузначные числа, сумма квадратов цифр которых делится на 13;
б) все двузначные числа, обладающие следующим свойством: если к сумме цифр числа прибавить квадрат этой суммы, то получится снова искомое число.
Z1.10. Найти все двузначные числа, которые делятся на n или содержат цифру n.
Z1.11. Найти:
а) все трехзначные числа, чьи квадраты оканчиваются тремя цифрами, которые и составляют искомые числа;
б) все трехзначные числа, кратные семи и у которых сумма цифр также кратна семи.
Z1.12. Найти сумму целых положительных чисел, больших 30 и меньших 100, кратных трем и оканчивающихся на 2, 4 и 8.
Z1.13. Дано натуральное число.
а) Получить все его делители.
б) Найти сумму его делителей.
в) Найти сумму его четных делителей.
г) Определить количество его делителей.
д) Определить количество его нечетных делителей.
е) Определить количество его делителей. Сколько из них четных?
ж) Найти количество его делителей, больших d.
NEW: Наш Чат, в котором вы можете обсудить любые вопросы, идеи, поделиться опытом или связаться с администраторами.
.
Z1.13
static void Main(string[] args)
{
Console.Write(«Введите число а: «);
int a = int.Parse(Console.ReadLine());
Console.Write(«Введите число d: «);
int d = int.Parse(Console.ReadLine());
Console.Clear();
int dividersSum = 0;
int evenDividersSum = 0;
int evenDividersCount = 0;
int oddDividersCount = 0;
int dividersCount = 0;
int dividersCountGreaterThanD = 0;
// а) Делители числа а
Console.Write($»Делители числа {a}: «);
for (int i = 1; i <= a; i++)
{
if (a % i != 0)
continue;
dividersCount++; // Кол-во делителей
if (i > d)
dividersCountGreaterThanD++; //Кол-во делителей больше чем d
Console.Write(i + » «);
dividersSum += i; // Сумма делителей
if (i % 2 == 0)
{
evenDividersSum += i; // Сумма четных делителей
evenDividersCount++; // Кол-во четных делителей
}
else
oddDividersCount++; // Количество нечетных делителей
}
// б) Сумма делителей числа а
Console.WriteLine($»\nСумма делителей числа {a}: {dividersSum}»);
// в) Сумма четных делителей а
Console.WriteLine($»Сумма четных делителей числа {a}: {evenDividersSum}»);
// г) Количество делителей числа а
Console.WriteLine($»Количество делителей числа {a}: {dividersCount}»);
// д) Количество нечетных делителей числа а
Console.WriteLine($»Количество нечетных делителей числа {a}: {oddDividersCount}»);
// е) Количество четных делителей числа а
Console.WriteLine($»Количество четных делителей числа {a}: {evenDividersCount}»);
// ж) Количество делителей числа а, больших числа d
Console.WriteLine($»Количество делителей числа {a}, больших числа {d}: {dividersCountGreaterThanD}»);
}
Отлично!
Небольшое замечание для поиска делителей не нужно перебирать все значения до a. Достаточно перебрать √a значений.
Z1. Циклы и условные операторы. Простейшие задачи
Console.WriteLine(«Введите число»);
string n1 = Console.ReadLine();
int n = Int32.Parse(n1);
Console.WriteLine(«Введите второе число»);
string d1 = Console.ReadLine();
int d = Int32.Parse(d1);
int a = 0;
int b = 0;
int c = 0;
List<int> deliteli = new List<int>();
List<int> nechetniedeliteli = new List<int>();
List<int> chetniedeliteli = new List<int>();
for (int i = 1; i <= n; i++)
{
if (n%i==0)
{
Console.WriteLine(i+ » «); //получить все его делители
a = a + i;
if(i%2==0)
{
b = b + i;
chetniedeliteli.Add(i);
}
else
{
nechetniedeliteli.Add(i);
}
deliteli.Add(i);
}
}
for (int f = 0; f < deliteli.Count; f++)
{
if (deliteli[f] > d)
c++;
}
Console.WriteLine(«Сумма делителей » + a ); //Найти сумму его делителей.
Console.WriteLine(«Сумма четных делителей » + b); //Найти сумму его четных делителей.
Console.WriteLine(«Всего делителей » + deliteli.Count); //Найти сумму его четных делителей.
Console.WriteLine(«Всего нечетных делителей » + nechetniedeliteli.Count); //Определить количество его нечетных делителей.
Console.WriteLine(«Всего четных делителей » + chetniedeliteli.Count); // Определить количество его делителей. Сколько из них четных?
Console.WriteLine(«количество его делителей, больших » + d + » будет » + c); // Найти количество его делителей, больших d.
Z1.13
Z1.11
Z1.10
Z1.13. Дано натуральное число.
#1.13 п.п. ж)
Console.WriteLine(«Enter a natural number:»);
int a = Convert.ToInt32(Console.ReadLine());
Console.WriteLine(«Enter d:»);
int d = Convert.ToInt32(Console.ReadLine());
int k = 0;
for (int i = 1; i <= a; i++)
{
if (a % i == 0)
{
if (i > d)
{
k++;
Console.WriteLine(«divider = » + i);
}
}
}
Console.WriteLine(«k = » + k);
Z1.2. Вывести на экран все целые числа от a до b, кратные некоторому числу c.
Александр, все верно. Хорошая работа.
Z1.1
Александр, начало верное, но в целом ответ не верный. Выведет числа не кратные 3ем (100, 103, 106, …). И это не гибкий способ. Подумайте про другой алгоритм.
Добавил условие проверки кратности:
Александр, вот теперь все верно. Вы молодец!
Z1.10. Найти все двузначные числа, которые делятся на n или содержат цифру n.
Алексей В, верно, но:
— плохое именование во втором цикле
— недочет: если n=2 то число 22 выведет 2 раза
int count1 = 0;
for (int i = a; i 0 && i % 4 == 0) ? count1 += i : 0;
Console.WriteLine(i);
}
Console.WriteLine($»count1 = {count1}»);
Console.WriteLine();
z1.11a
using System;
namespace ConsoleApp14
{
class Program
{
static void Main(string[] args)
{
int i = 100;
int j = 1000;
while(i<j)
{
int kv = i * i;
kv -= i;
if(kv % 1000 == 0)
{
kv = i * i;
Console.WriteLine(kv + " и " + i);
}
i++;
}
}
}
}
Возвожу в квадрат и вычитаю используемое трехзначное число и если при остатке от деления на 1000 будет 0, то нашли нужное число. если кто здесь есть, проверьте правильно ли работает
using System;
namespace ConsoleApp14
{
class Program
{
static void Main(string[] args)
{
int i = 100;
int j = 1000;
while(i<j)
{
int kv = i * i;
kv -= i;
if(kv % 1000 == 0)
{
kv = i * i;
Console.WriteLine(kv + " и " + i);
}
i++;
}
}
}
}
Возвожу в квадрата, вычитаю из этого квадрата используемое трехзначное число и если в остатке от деления на 1000 будет 0, то число нашли. Если кто здесь есть, ответьте, правильно работает или нет?
Это к z1.11a
int n = int.Parse(Console.ReadLine());
for( int i = 10; i < 100; i++)
{
int y = i/10;
int b = i%10;
if(i%n == 0 || y == n || b == n)
{
Console.WriteLine(i);
}
}
Z1.11. Найти:
а) все трехзначные числа, чьи квадраты оканчиваются тремя цифрами, которые и составляют искомые числа;
б) все трехзначные числа, кратные семи и у которых сумма цифр также кратна семи.
Вариант решения:
static void Main(string[] args)
{
List firstCondition = new List();
List secondCondition = new List();
for (int i = 100; i < 999; i++)
{
int number = (int)Math.Pow(i, 2);
int numCheck = 0;
List digits = new List();
digits = GetDigits(number);
int lastRange = digits.Count — 1;
int sum = 0;
for (int pow = 0; pow <= 2; pow++)
{
numCheck += digits[lastRange] * (int)Math.Pow(10, pow);
lastRange—;
}
if (numCheck == i)
{
firstCondition.Add(i);
}
digits = GetDigits(i);
foreach (var num in digits)
{
sum += num;
}
if (i % 7 == 0 && sum % 7 == 0)
{
secondCondition.Add(i);
}
}
Console.WriteLine("Трёхзначные числа, чьи квадраты оканчиваются тремя цифрами, которые и составляют искомые числа:");
WriteNum(firstCondition);
Console.WriteLine("Все трехзначные числа, кратные семи и у которых сумма цифр также кратна семи:");
WriteNum(secondCondition);
Console.ReadKey();
}
static List GetDigits(int numeric)
{
List digits = new List();
var maxPow = (int)Math.Log10(numeric);
for (int pow = maxPow; pow >= 0; pow—)
{
digits.Add((int)(numeric / Math.Pow(10, pow)));
numeric = (int)(numeric % Math.Pow(10, pow));
}
return digits;
}
static private void WriteNum(List list)
{
foreach (var num in list)
{
Console.Write(num + » «);
}
Console.WriteLine();
}
Z1.10. Найти все двузначные числа, которые делятся на n или содержат цифру n. Вариант решения:
static void Main(string[] args)
{
Console.WriteLine(«Введи целое положительное число n: «);
int n = Convert.ToInt32(Console.ReadLine());
Console.WriteLine(«Числа, в которых содержится цифра n и они делятся на n без остатка:»);
for (int i = 10; i < 99; i++)
{
double number = i;
var maxPow = (int)Math.Log10(i);
List digits = new List();
for (int pow = maxPow; pow >= 0; pow—)
{
int digitTest = (int)(number / Math.Pow(10, pow));
number = (int)(number % Math.Pow(10, pow));
if (digitTest == n && i % n == 0)
{
Console.WriteLine(i);
}
}
}
Console.ReadKey();
Z1.8. Определить количество трехзначных натуральных чисел, сумма цифр которых равна целому числу n (0 ˂ n ˂= 27).
Вариант решения
Павел! Ваш вариант с моей поправкой более полно отвечает на вопрос задачи: есть частотность и общее количество.
Z1.8. Определить количество трехзначных натуральных чисел, сумма цифр которых равна целому числу n (0 ˂ n ˂= 27).
Вариант решения
Антон, с небольшой поправкой.
Z1.7. Определить количество натуральных чисел из интервала от 100 до 500, сумма цифр которых равна 15.
Решил усложнить себе жизнь, сделав так:
Имеет ли мой код право на жизнь?
Андрей, да.
Помогите пожалуйста с Z1.9
Z1.9. Найти:
а) все двузначные числа, сумма квадратов цифр которых делится на 13;
б) все двузначные числа, обладающие следующим свойством:
если к сумме цифр числа прибавить квадрат этой суммы, то получится снова искомое число.
Z1.6. Составить программу поиска четырехзначных чисел, которые при делении на 133 дают в остатке 125, а при делении на 134 дают в остатке 111.
Роман, верно.
Добавить нечего к Вашему решению.
Z1.4. Найти сумму целых положительных чисел из промежутка от a до b, кратных четырем.
Роман, верно!
Теперь запишите решение, не используя оператор if.
Console.WriteLine(«Введите а: «);
int a = int.Parse(Console.ReadLine());
Console.WriteLine(«Введите b: «);
int b = int.Parse(Console.ReadLine());
int count1 = 0;
for (int i = a; i 0 && i % 4 == 0) ? count1 += i : 0;
}
Console.WriteLine($»count1 = {count1}»);
Подскажите пожалуйста, как в таком варианте вывести в консоли каждое положительное и кратное 4м число индекса?
int count1 = 0;
for (int i = a; i 0 && i % 4 == 0) ? count1 += i : 0;
Console.WriteLine(i);
}
Console.WriteLine($»count1 = {count1}»);
В предыдущем ответе сбился код
int count1 = 0;
for (int i = a; i 0 && i % 4 == 0) ? count1 += i : 0;
}
Console.WriteLine($»count1 = {count1}»);
Подскажите пожалуйста, как в таком варианте ответа вывести все числа Console.WriteLine(i);
int count1 = 0;
for (int i = a; i 0 && i % 4 == 0) ? count1 += i : 0;
Console.WriteLine(i);
}
Console.WriteLine($»count1 = {count1}»);
Console.WriteLine();
int count1 = 0;
for (int i = a; i 0 && i % 4 == 0) ? count1 += i : 0;
Console.WriteLine(i);
}
Console.WriteLine($»count1 = {count1}»);
Console.WriteLine();
int count1 = 0;
for (int i = a; i 0 && i % 4 == 0) ? count1 += i : 0;
Console.WriteLine(i);
}
Console.WriteLine($»count1 = {count1}»);
Console.WriteLine();
Z1.3. Найти сумму положительных нечетных чисел, меньших 50.
Роман, верно.
А обойтись без оператора if можно?
Z1.2. Вывести на экран все целые числа от a до b, кратные некоторому числу c.
Роман, верно!
1) А что будет выведено, если a > b ?
2) Или если заголовок цикла заменить на: for (int i = a; i <= b; i += c)
Z1.1. Вывести на экран все целые числа от 100 до 200, кратные трем.
Z1.12. Найти сумму целых положительных чисел, больших 30 и меньших 100, кратных трем и оканчивающихся на 2, 4 и 8.
Николай, верно.
int count3 = 0;
for (int A = 31; A < 100; A++)
{
if ((A % 3 == 0) && (A % 10 == 2 || A % 10 == 4 || A % 10 == 8))
{
count3 += A;
Console.WriteLine(A);
}
}
Console.WriteLine($"count 3 = {count3}");
Подскажите пожалуйста решение задание Z1.7 в виде готового кода.
А также возникли некоторые трудности , а именно компилятор не позволяет провести операцию над переменной d поскольку ей не присвоено значение.
Сурен! спасибо за внимательность. Алгоритм исправил. А вот и программный код Вам в награду:
Можете подсказать решение задание Z1.7. Определить количество натуральных чисел из интервала от 100 до 500, сумма цифр которых равна 15. Никак не могу додуматься до его решения.
Андрей! Обнулите n — счетчик таких чисел.
В цикле по k от 100 до 500:
сложите цифры единиц (e), десятков (d) и сотен (c) числа k, если их сумма = 15, то увеличьте n на 1 (n++;).
Число сотен — с = k/100, десятков d = (k-c*100)/10, единиц e = (k-c*100)%10.
И все, присылайте решение.
Благодарю за ответ, хоть я уже ранее успел решить. Спасибо что уделяете своё время на юных программистов. xD :)
Z1.5. Составить программу поиска четырехзначных чисел, которые при делении на 47 дают в остатке 43, а при делении на 43 дают в остатке 37.
Пример решения