gpt4 book ai didi

c - Pollard 的 rho 算法用于具有指针错误的 logarithms_C

转载 作者:行者123 更新时间:2023-11-30 19:19:51 25 4
gpt4 key购买 nike

我正在用 C 语言编写来自 wiki 的 Pollard's rho 算法,即用于对数的 Pollard's rho 算法。但我有一个我不知道的运行时错误。我认为这可能是来自指针。你能发现错误吗?

#include<stdio.h>
#include<math.h>

int alpha, beta, N;

void xab(int *x, int *a, int *b)
{
switch(*x%3){
case 0: *x=((*x)*(*x))%N; *a=((*a)*2)%N; *b=((*b)*2)%N; break;
case 1: *x=(alpha*(*x))%N; *a=((*a)+1)%N; break;
case 2: *x=(beta*(*x))%N; *b=((*b)+1)%N; break;
}
}

int main(void)
{
int x=1; int a=0; int b=0;
int X=1; int A=0; int B=0;
int i;

scanf("%d %d %d", alpha, beta, N);

for(i=1;i<N;i++){
xab(&x,&a,&b);
xab(&X,&A,&B); xab(&X,&A,&B);
if(x=X) break;
}
return 0;
}

最佳答案

 scanf("%d %d %d", alpha, beta, N);

应该是

 scanf("%d %d %d", &alpha, &beta, &N);

关于c - Pollard 的 rho 算法用于具有指针错误的 logarithms_C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23623428/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com