问题描述:
小蓝发现,对于一个正整数 �n 和一个小于 �n 的正整数 �v,将 �v 平方后对 �n 取余可能小于 �n 的一半,也可能大于等于 �n 的一半。
请问,在 11 到 �−1n−1 中, 有多少个数平方后除以 �n 的余数小于 �n 的一半。
例如,当 �=4n=4 时,1,2,31,2,3 的平方除以 44 的余数都小于 44 的一半。
又如,当 �=5n=5 时, 11,44 的平方除以 55 的余数都是 11,小于 55 的一半。而 22,33 的平方除以 55 的余数都是 44, 大于等于 55 的一半。
输入:
输入一行包含一个整数 �n 。
输出:
输出一个整数,表示满足条件的数的数量。
参考代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,count=0;
cin>>n;
for(int i=1;i<n;i++)
{
if(i*i%n<n/2.0)
count++;
}
cout<<count<<endl;
return 0;
}