官术网_书友最值得收藏!

  • The Modern C++ Challenge
  • Marius Bancila
  • 149字
  • 2021-06-25 22:01:23

4. Largest prime smaller than given number

A prime number is a number that has only two pisors, 1 and the number itself. To find the largest prime smaller than a given number you should first write a function that determines if a number is prime and then call this function, starting from the given number, towards 1 until the first prime is encountered. There are various algorithms for determining if a number is prime. Common implementations for determining the primality appear as follows:

bool is_prime(int const num) 
{
if (num <= 3) { return num > 1; }
else if (num % 2 == 0 || num % 3 == 0)
{
return false;
}
else
{
for (int i = 5; i * i <= num; i += 6)
{
if (num % i == 0 || num % (i + 2) == 0)
{
return false;
}
}
return true;
}
}

This function can be used as follows:

int main()
{
int limit = 0;
std::cout << "Upper limit:";
std::cin >> limit;

for (int i = limit; i > 1; i--)
{
if (is_prime(i))
{
std::cout << "Largest prime:" << i << std::endl;
return 0;
}
}
}
主站蜘蛛池模板: 宁强县| 贵南县| 江永县| 高雄市| 交口县| 海丰县| 金昌市| 惠水县| 罗定市| 乌鲁木齐县| 启东市| 屯昌县| 乌兰浩特市| 临城县| 资兴市| 麟游县| 昭平县| 咸宁市| 固安县| 恩施市| 南涧| 海盐县| 南华县| 清流县| 临武县| 镇原县| 察隅县| 曲松县| 石阡县| 迁安市| 精河县| 兰州市| 两当县| 兴山县| 文水县| 望城县| 广平县| 都江堰市| 鄂州市| 浦北县| 长白|