C#
Программирование на C# - целые числа
Есть ли в С# обозначение "целое число"? Как должно выглядеть выражение, если мне нужно проверить - делится ли n % i нацело (или только дробно)
Ты, по сути, сам всё и написал:
% - остаток от деления. Соответственно:
if (n % i == 0) {
//делится
} else {
//не делится
}
% - остаток от деления. Соответственно:
if (n % i == 0) {
//делится
} else {
//не делится
}
using System;
namespace Answer {
class Program {
static void Main() {
Console.Write("n: ");
var n = int.Parse(Console.ReadLine());
for (var i = 1; i <= n; ++i) if (IsPrime(i)) Console.Write($"{i} ");
Console.ReadKey();
}
static bool IsPrime(int num) {
bool prime;
if (num <= 5 && (num <= 2 || num == 3 || num == 5)) prime = true;
else if (0 == num % 2 || 0 == num % 3 || 0 == num % 5) prime = false;
else {
int n;
for (n = 3; n * n <= num && 0 != num % n; n += 2) { ; }
prime = n * n > num;
}
return prime;
}
}
}
namespace Answer {
class Program {
static void Main() {
Console.Write("n: ");
var n = int.Parse(Console.ReadLine());
for (var i = 1; i <= n; ++i) if (IsPrime(i)) Console.Write($"{i} ");
Console.ReadKey();
}
static bool IsPrime(int num) {
bool prime;
if (num <= 5 && (num <= 2 || num == 3 || num == 5)) prime = true;
else if (0 == num % 2 || 0 == num % 3 || 0 == num % 5) prime = false;
else {
int n;
for (n = 3; n * n <= num && 0 != num % n; n += 2) { ; }
prime = n * n > num;
}
return prime;
}
}
}
У вас путаница полная: есть целочисленные переменные и есть проверка на делимость без остатка.
https://docs.microsoft.com/ru-ru/dotnet/csharp/language-reference/operators/arithmetic-operators
Оператор остатка %
Оператор остатка % вычисляет остаток от деления левого операнда на правый.
Целочисленный остаток
Для целочисленных операндов результатом a % b является значение, произведенное a - (a / b) * b. Знак ненулевого остатка такой же, как и у левого операнда, как показано в следующем примере:
Console.WriteLine(5 % 4); // output: 1
Console.WriteLine(5 % -4); // output: 1
Console.WriteLine(-5 % 4); // output: -1
Console.WriteLine(-5 % -4); // output: -1
Используйте метод Math.DivRem для вычисления результатов как целочисленного деления, так и определения остатка.
Остаток с плавающей запятой
Для операндов типа float и double результатом x % y для конечных x и y будет значение z, так что:
знак z, если отлично от нуля, совпадает со знаком x;
абсолютное значение z является значением, произведенным |x| - n * |y|, где n — это наибольшее возможное целое число, которое меньше или равно |x| / |y|, а |x| и |y| являются абсолютными значениями x и y, соответственно.
https://docs.microsoft.com/ru-ru/dotnet/csharp/language-reference/operators/arithmetic-operators
Оператор остатка %
Оператор остатка % вычисляет остаток от деления левого операнда на правый.
Целочисленный остаток
Для целочисленных операндов результатом a % b является значение, произведенное a - (a / b) * b. Знак ненулевого остатка такой же, как и у левого операнда, как показано в следующем примере:
Console.WriteLine(5 % 4); // output: 1
Console.WriteLine(5 % -4); // output: 1
Console.WriteLine(-5 % 4); // output: -1
Console.WriteLine(-5 % -4); // output: -1
Используйте метод Math.DivRem для вычисления результатов как целочисленного деления, так и определения остатка.
Остаток с плавающей запятой
Для операндов типа float и double результатом x % y для конечных x и y будет значение z, так что:
знак z, если отлично от нуля, совпадает со знаком x;
абсолютное значение z является значением, произведенным |x| - n * |y|, где n — это наибольшее возможное целое число, которое меньше или равно |x| / |y|, а |x| и |y| являются абсолютными значениями x и y, соответственно.
Похожие вопросы
- Программирование на C Sharp (C#)
- Как выглядит сам процесс программирования на C#
- C#: Умножения чисел(чисел в строках) больших Int64 MaxValue без использования System.Numerics и BigInteger
- Программирование на C#
- Программирование на C#
- Учитывая целое число n (n>2), напишите метод, который возвращает простые числа из диапазона [2, n].
- С # Дан двумерный массив целых чисел размером m*n. Заполнить его с клавиатуры.
- Посоветуйте пожалуйста книгу, для изучения языка программирования C#, с полного нуля, заранее спасибо!
- C#. Как сгенерировать случайное число в диапозоне, исключающее одно число. C#
- Программирование C# . Length
{
if (n % i == 0)
pr = false;
break;
}
if (pr == true)
почему выдает, что число 9 и 15 простые? в цикле косяк?
if (n % i == 0) { pr = false; }
break;
А должно быть так:
if (n % i == 0) { pr = false; break; }