#include <iostream>
using namespace std;
bool is_prime(const int num) {
if (!num) return false;
bool prime;
if (num < 6 && (num <= 2 || num == 3 || num == 5)) prime = true;
else if (~num & 1 || 0 == num % 3 || 0 == num % 5) prime = false;
else {
int n;
for (n = 3; n * n <= num && num % n; n += 2) { ; }
prime = n * n > num;
}
return prime;
}
int main() {
int num;
do {
cout << "Number: ";
cin >> num;
if (is_prime(num)) cout << "Yes!\n";
else cout << "No!\n";
} while (num);
}
Другие языки программирования и технологии
Дано n число, как узнать простое оно или нет в c++ ?
Женя Шпикулёв
а 7 забыли написать?))
Женя Шпикулёв
аа, все терь понятно...
Простыми числами называются те целые числа, которые не делятся без остатка ни на какое другое число, кроме единицы и себя самого.
Ибрагим Нурулинов
То есть...?
if ((n % n) == 0 && (n % 1) == n) {
Просто число
} else {
Не просто число
}
if ((n % n) == 0 && (n % 1) == n) {
Просто число
} else {
Не просто число
}
Построить решето Эратосфена от 3 до n (только для нечетных чисел), это самый быстрый способ - поскольку не используются тяжелые операции типа деления и взятия остатка. Предварительно проверив на 2, т. к - оно простое. Любое четное число не является простым. Строишь массив делителей от 3 до n включительно, заполняешь нечетными числами от исходного с шагом 2. В следующем цикле, на каждую итерацию до n зануляешь каждый j делитель (то есть шаг j), исходную позицию можно брать как квадрат j. После прохода проверяешь не попало ли 0 в последний элемент массива, если да ставишь флаг не простого числа, иначе перебираешь следующий делитель. Все описано в Вики...
Женя Шпикулёв
а разве не проще просто проверить делимость числа на 2,3, 5 и 7???
Похожие вопросы
- как решить через abc pascal задачу "Дано натуральное число n. Получить все простые делители этого числа"
- Написать программу на языке C, чтобы в нее вводили число, а она говорила простое оно или нет
- Дано натуральное число n и вещественная матрица размера n X 9 . Плиз помогите(
- Дано натуральное число п. Найти знакочередующуюся сумму цифр числа n:
- пожалуйста, напишите мне программу этого вопроса в C ++.пожалуйста помогите. Создать динамический массив из N чисел.
- Решите задачу! Дано целое число n найдите сумму 1^n +2^n-1 + 3^n-2 ...+n^1
- дано целое число n,вывести все числа от 1 до n,и кол во этих чисел
- дано натуральное число N. Определить является ли оно полиндромом. Паскаль
- Помогите пожалуйста!Паскаль. Дано натуральное число N. Получить наименьшее число вида 2(m в степени), превосходящее N.
- Вводится число N, а затем N чисел. Подсчитайте, сколько среди данных N чисел нулей.