这个求欧拉函数的c语言程序哪里错了?

int modd(int x, int y)
{
	int sign;
	if (x > y)
	{
		sign = x;
		x = y;
		y = sign;
	}

	//sign为余数的标志符号
	while (x != 0)
	{
		sign = y % x;
		y = x;
		x = sign;
	}
	return (y);
}
int main()
{
	int a, i, b,counter;
	counter = 0;
	scanf("%d", &a);
	for(i=1;i<=a;i++)
	{
		b = modd(a, i);
		if (b == 1)
		{
			counter = counter + 1;
		}
		i++;
	}
	printf("%d", counter);
	return 0;
}

没有报错,但总是无法输出正确结果,如13的欧拉函数应该是12输出却为6

你在main函数里的for循环里,i++,加了两次。出错

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^