C#

Программирование на C# - целые числа

Есть ли в С# обозначение "целое число"? Как должно выглядеть выражение, если мне нужно проверить - делится ли n % i нацело (или только дробно)
Ты, по сути, сам всё и написал:
% - остаток от деления. Соответственно:
if (n % i == 0) {
//делится
} else {
//не делится
}
Алексей Баранов
Алексей Баранов
7 947
Лучший ответ
Александр Москалёв for (var i = 2; i < n; i++)
{
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; }
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;
}
}
}
У вас путаница полная: есть целочисленные переменные и есть проверка на делимость без остатка.
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, соответственно.
/nu Ri/
/nu Ri/
53 119