目录
题目
3490. 小平方 - AcWing题库https://www.acwing.com/problem/content/3493/
代码
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
int target = input.nextInt();
int count = 0;
for(int i = 0; i < target - 1; i++){
if((i * i) % target <= target / 2){
count++;
}
}
System.out.println(count);
}
}
AC结果
思路
给一个正整数n,然后需要求1到n-1中(设i∈[1,n-1]),满足以下要求的有多少个数。
要求:( i * i ) % n < n / 2
需要注意的是,java除法中当不能整除的时候则自动省略小数部分,因此需要注意边界情况。将要求调整为:
( i * i ) % n * 2 < n
这样就可以规避上述情况。当满足情况的时候让count自增,最后count就是1到n-1中满足要求的个数,返回即可。