inline bool simple(int);
int main()
{
for(int i = 1; i <= 10000; i++)
if(simple(i))
cout << setw(5) << setiosflags(ios::left) << i;
_getch();
return 0;
}
inline bool simple(int num)
{
if(num < 2)
return false;
else
for(int i = 2; i <= num/2; i++)
if(num % i == 0)
return false;
return true;
}
(1) В main if(simple(i)) - правильно ли понимаю что это возвращает только true? как это так ?
(2) Как в самой функции совместить sqrt и % ? тк через корень увеличивается скорость программы
Другие языки программирования и технологии
c++ сильно завис алгоритм нахождения простых чисел - пару вопросов ?
inline bool simple(int num)
{
if(num < 2) // если число меньше двух
return false; // вернуть false(в данном случае if из программы не сработает)
else // иначе
for(int i = 2; i <= num/2; i++) // выполнять цикл пока i меньше или равно num/2
if(num % i == 0) // если остаток от деления числа num на число i равен нулю (делится без остатка то есть не простое число)
return false; //вернуть false(if из программы не сработает при false)
return true; // И все таки если не нашли числа которое делится без остатка, то это простое число и возвращаем true(и вот тут if, который в программе сработает)
//Как заменить остаток от деления на корень числа я вообще не представляю!
}
{
if(num < 2) // если число меньше двух
return false; // вернуть false(в данном случае if из программы не сработает)
else // иначе
for(int i = 2; i <= num/2; i++) // выполнять цикл пока i меньше или равно num/2
if(num % i == 0) // если остаток от деления числа num на число i равен нулю (делится без остатка то есть не простое число)
return false; //вернуть false(if из программы не сработает при false)
return true; // И все таки если не нашли числа которое делится без остатка, то это простое число и возвращаем true(и вот тут if, который в программе сработает)
//Как заменить остаток от деления на корень числа я вообще не представляю!
}
Сергей Тимофеев
не понимаю почему из функции не возвращается false - это же тоже считается выполнение функции
#include <iostream>
#include <iomanip>
using namespace std;
template<typename Type>
bool is_prime(Type num) {
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 {
Type n;
for (n = 3; n * n <= num && num % n; n += 2) { ; }
prime = n * n > num? true : false;
}
return prime;
}
int main() {
for (short i = 1; i != 10000; ++i) if (is_prime(i)) cout << ' ' << setw(5) << i;
cout.put('\n');
cin.get();
}
#include <iomanip>
using namespace std;
template<typename Type>
bool is_prime(Type num) {
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 {
Type n;
for (n = 3; n * n <= num && num % n; n += 2) { ; }
prime = n * n > num? true : false;
}
return prime;
}
int main() {
for (short i = 1; i != 10000; ++i) if (is_prime(i)) cout << ' ' << setw(5) << i;
cout.put('\n');
cin.get();
}
if(simple(i)) cout << setw(5) << setiosflags(ios::left) << i;
если число_простое (i) то выводим это число на экран
И это может возвратить не только истину, то бишь если число не простое, то возврат фалсе
если число_простое (i) то выводим это число на экран
И это может возвратить не только истину, то бишь если число не простое, то возврат фалсе
Сергей Тимофеев
в примере где списал функция написана вот так
inline bool simple(int num)
{
if(num < 2)
return false;
else
for(int i = 2; i <=sqrt (num); i++)
if(num % i == 0)
return false;
return true;
}
и получается или sqrt или убирать % - один тип только с плавающей точкой работает (sqrt ) второй % только с целым типом ?
inline bool simple(int num)
{
if(num < 2)
return false;
else
for(int i = 2; i <=sqrt (num); i++)
if(num % i == 0)
return false;
return true;
}
и получается или sqrt или убирать % - один тип только с плавающей точкой работает (sqrt ) второй % только с целым типом ?
Похожие вопросы
- Приведите алгоритмы нахождения простых чисел в заданном промежутке
- Помогите найти алгоритм вычисления простых чисел
- Программа по нахождению простых чисел от 1 до 100
- Помогите разобраться в C++ с программой по поиску простых чисел
- Помогите найти, алгоритм нахождения Произведения простых чисел, на С++, или литературу которая поможет разобраться.
- Алгоритмы в паскале. Народ, напишите плиз алгоритм нахождения НОД и алгоритм выделения цифр числа. Заранее благодарю)
- Предложите алгоритм нахождения количества максимальных чисел из трех введенных чисел.
- простые числа c++
- Помогите пожалуйста! Как Разработать алгоритм нахождения суммы и кол-ва четных чисел натурального ряда, кот. >K, но
- Формула нахождения квадрата числа