众所周知,这道题不能利用整数的向下取整。 但是,如果把小于改成小于等于就 AC 了。 代码:
#include <iostream> using namespace std; int n,cnt; int main(void){ cin>>n; for(int i=1;i<n;i++){ cnt+=(i*i%n)<=(n/2); } cout<<cnt; }
hack 数据: 输入:6 输出应该为:2 这个程序输出为:3
6
2
3