Login
Вопросы по C#
975 просмотров
Перейти к просмотру всей ветки
Всем привет!
Сейчас в универе изучаю C#. Ранее с программированием не сталкивался, но большая часть мне пока понятна.
По этой небольшой непонятной части и возник вопрос сейчас, поэтому буду благодарен наставлению на путь истинный!
Дано задание: вывести на консоль все простые числа до 1000.
Выполнил с использованием метода так:
Сейчас в универе изучаю C#. Ранее с программированием не сталкивался, но большая часть мне пока понятна.
По этой небольшой непонятной части и возник вопрос сейчас, поэтому буду благодарен наставлению на путь истинный!
Дано задание: вывести на консоль все простые числа до 1000.
Выполнил с использованием метода так:
using System;
class PruefungDerZahl
{
// This Method returns TRUE, if the number saved in variable "zahl" is prime
static bool istPrimzahl(int zahl)
{
// Checks if the number saved in variable "zahl" can be divided by numbers
// starting from 2 to ("zahl" - 1) without the rest. If no - returns TRUE.
for (int j = 2; j < zahl; j++)
if ((zahl % j) == 0)
return false;
return true;
}
static void Main()
{
// Takes the numbers from 2 to 1000 and saves to the variable "i"
for (int i = 2; i <= 1000; i++)
{
// Sends the value of variable "i" to the variable "zahl" of the method istPrimzahl
// If the method istPrimzahl returns TRUE, then writes the number on the screen
Console.Write(istPrimzahl(i) ? i + "\t" : "");
}
Console.ReadLine();
}
}
Теперь хочу выполнить это же задание БЕЗ использования метода, используя один for в другом, но не понимаю как реализовать.
using System;
class PruefungDerZahl
{
static void Main()
{
bool prim = true;
// Берем значение от 2 до 1000, сохраняем в i
for (int i = 2; i <= 1000; i++)
{
// Для каждого значения i проверяется деление без
// остатка на числа от 2 до i/2
for (int j = 2; j < i; j++)
{
if (i % j == 0)
{
prim = false;
}
}
}
}
}
Пытался сделать так: если число делится без остатка false, с остатком true. Но не понял, как реализовать проверку деления одного значения i на ВСЕ j, при этом, если хоть при одном значении j модуло == 0, возвращается false и число не выводится на экран. Если true, то число i выводится на экран 1 раз после перебора всех делителей j.
Натолкните на мысль, в какую сторону двигаться?
Спасибо!