Problem 8. Prime Number Check
Колеги, моля за помощ, съдействие, обяснение или още нещо...Знам, че сигурно тази задача е елементарна за голяма част от форума, но просто не мога да се справя. Къде бъркам. След проверките съм сигурен, че трябва да използвам оператора && в този случай, защото и двете проверки трябва да са верни. Но ми изкарва всичко true...
using System;
class DividedBySevenandFive
{
static void Main()
{
int n = int.Parse(Console.ReadLine());
bool primeNumber = (n / n == 1 && n / 1 == n);
Console.WriteLine(primeNumber ? true : false);
}
}
Здравей Светославе,
трябват ти много делители един след друг, не 2, не 2 и 3....
тук пише колко и кои делители ти трябват само за числата до 100...
https://en.wikipedia.org/wiki/Sieve_of_Eratosthenes
А този код използва точно алгоритъма на Ератостен:
http://codereview.stackexchange.com/questions/62139/sieve-of-eratosthenes-implementation-is-running-slowly
маха всички числа, които са кратни на две, после с два вложени цикъла
y = x * 2 ...
стъпка y = y + x (така получаваш всички числа кратни на X, и ги махаш - за кратните на 2, 3, ..... до колкото искаш. И които останат не махнати са прости числа (prime numbers).Тоест без For-цикъл няма вариант за решение?
Ами трябват ти дълъг списък от делители, ако не искаш да използваш for цикъл, можеш да вземеш от wikipedia лик-а всички делители и да разделиш на всеки от тях, но е неприятно - няма смисъл - for цикъла е много удобен тук.
Тернарен оператор до 100: Console.WriteLine(inputNumber % 2 == 0 && inputNumber % 3 == 0 && inputNumber % 5 == 0 && inputNumber % 7 == 0 ? "false" : "true"); (заменя твоя ред в else{ }