给我一个随机生成大素数的c++代码
时间: 2023-06-09 09:05:22 浏览: 154
随机产生大素数的C++程序
4星 · 用户满意度95%
下面是一种生成随机大素数的C语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int is_prime(long int n) {
if (n == 2 || n == 3) {
return 1;
}
if (n == 1 || n % 2 == 0) {
return 0;
}
for (long int i = 3; i * i <= n; i += 2) {
if (n % i == 0) {
return 0;
}
}
return 1;
}
long int generate_prime(int bits) {
long int p = 0;
do {
p = rand() % (1 << bits);
if (p % 2 == 0) {
p++;
}
} while (!is_prime(p));
return p;
}
int main() {
srand(time(NULL));
int bits = 128;
long int c = generate_prime(bits);
printf("随机生成的%d位大素数c为:%ld", bits, c);
return 0;
}
```
此代码会生成一个长度为128位的随机大素数。您可以根据需要更改生成的位数。注意,由于素数的随机性质,每次运行这个代码都会生成一个不同的大素数。
阅读全文