Я застрял с проблемой.
Я хочу создать программу на C#, которая вычисляет деления введенных чисел, но я не могу закончить эту программу.
и т.п.
Вот мой код:
namespace Divisions
{
class Program
{
static void Main(string[] args){
Console.WriteLine("Enter number:");
int input = Convert.ToInt32(Console.ReadLine());
int x = 1;
int y = input % x;
while(x<input){
x++;
while(y==0){
Console.WriteLine(x);
}
}
}
}
}
Я пробовал каждую петлю. Я менял этот код более 15 раз. Я использовал цикл do while, for loop, даже пытался использовать while и if одновременно, но не получилось.
Подумайте, как бы вы сделали это вручную (используя псевдокод, если хотите), а затем преобразуйте его в C#. Вам нужно понять математическую задачу, прежде чем писать код. Совет: читайте про for петли. Кроме того, вещи внутри цикла выполняются на каждой итерации, а вещи, которые выполняются не только один раз. Вы узнаете намного больше, если будете работать над этим самостоятельно.
Это не первичные факторы, а просто факторы. Я не уверен, что спрашивающий выиграет от дублирующего вопроса.





Кажется, вы думаете, что y будет переоцениваться каждый раз, когда запускается ваш цикл. Это не так, он оценивается только один раз перед циклом, поэтому всегда будет иметь значение input % 1. Вам нужно переместить задание внутри цикла:
Console.WriteLine("Enter number:");
int input = Convert.ToInt32(Console.ReadLine());
int x = 1;
while(x<=input)
{
if (input % x==0)
{
Console.WriteLine(x);
}
x++;
}
Я полностью убрал y и поставил его в качестве условия для if. Я также переместил x++ в конец цикла, чтобы он оценивался, является ли он делителем, прежде чем он увеличивался. И, наконец, я сделал это x<=input в состоянии цикла, чтобы учитывались оба конца диапазона.
Ваша программа застревает в бесконечном цикле, когда y переменная равна 0, может быть, вместо того, пока вы имели в виду использование if, ваша переменная y никогда не изменяется, потому что она находится вне цикла.
While циклы очень легко создать бесконечный цикл
Я настоятельно рекомендую вам попробовать это снова и не копировать то, что я вам дал.
Console.WriteLine("Enter number:");
int input = Convert.ToInt32(Console.ReadLine());
int x = 0;
while(x<input){
x++;
int y = input % x;
if (y==0){
Console.WriteLine(x);
}
Вам не хватает концевой скобки: }.
Вы пытаетесь найти простые множители целого числа