例:158974589214758962147852。
这个问题我已经苦思冥想了一段时间了。
可能的方法是什么?
什么是最佳实践?
最佳答案
这是个好问题。。。
您可以使用OpennSsl BIGNUM。
这是一个简单的父亲的例子。
#include <stdio.h>
#include <openssl/bn.h>
int main(int argc, char **argv)
{
BIGNUM *fat;
BN_ULONG a, f;
char *resp;
int i;
fat = BN_new();
for (i = 1; i < argc; i++) {
f = atoll(argv[i]);
BN_dec2bn(&fat, "1");
for (a = 2; a <= f; a++) {
BN_mul_word(fat, a);
}
resp = BN_bn2dec(fat);
printf("Fatorial of %s = %s\n", argv[i], resp);
}
return 0;
}
我发现了一个更好的例子:
#include <stdio.h>
#include <openssl/bn.h>
int main(int argc, char **argv)
{
BIGNUM *fat;
char *resp = NULL;
fat = BN_new();
BN_generate_prime(fat, 80, 1, NULL, NULL, NULL, NULL);
resp = BN_bn2dec(fat);
printf("Big Random Value: %s\n", resp);
}
;)
关于c - 生成长度为25的随机数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9009971/