21xrx.com
2024-11-05 17:34:41 Tuesday
登录
文章检索 我的文章 写文章
使用C++生成随机20位整数并判断其是否为素数
2023-07-13 14:02:41 深夜i     --     --
C++ 随机数生成 20位整数 素数判断

C++ 是一种常用于编写计算机程序的编程语言,具有高效、安全、可靠等优点。在编写程序时,使用随机数是很常见的,而判断素数也是基本的算法之一。那么怎样使用 C++ 生成随机20位整数并判断其是否为素数呢?

生成随机20位整数:

我们可以使用 C++ 的 srand() 和 rand() 函数来生成随机数。在使用这两个函数之前,需要使用time()函数来作为一个种子,以确保每次运行程序生成的随机数是不同的。下面是示例代码:


#include <iostream>

#include <ctime>

using namespace std;

int main() {

  srand((unsigned)time(NULL));

  long long num = 0;

  for (int i = 0; i < 20; i++) {

    num = num * 10 + rand() % 10;

  }

  cout << num << endl;

  return 0;

}

在上述代码中,先使用 srand() 函数以当前时间为种子,然后生成一个20位的整数并输出结果,即可得到一个随机的20位整数。

判断素数:

判断素数是常见的算法之一,从2到sqrt(n)逐个测试n是否可以被n的因子整除即可。如果2到sqrt(n)都不能整除n,那么n就是素数。下面是示例代码:


#include <iostream>

#include <cmath>

using namespace std;

int main() {

  long long num = 1234567890123456789; // 待判断的20位整数

  bool isPrime = true;

  for (int i = 2; i <= sqrt(num); i++) {

    if (num % i == 0)

      isPrime = false;

      break;

    

  }

  if (isPrime)

    cout << "Yes else

    cout << "No

  return 0;

}

在上述代码中,将要判断的20位整数定义为变量 num,通过遍历2到sqrt(num)的值来判断是否存在因子可以整除num。如果存在这样的因子,则说明num不是素数,将变量 isPrime 设置为false。最后根据 isPrime 的值输出结果。

从上述代码可以看出,C++ 中判断素数很简单。因此,使用 C++ 生成随机20位整数并判断其是否为素数是非常容易的。不过随机生成的20位整数可能会非常大,因此应当注意使用long long类型来存储。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复