题目:
时间限制: 1.0s 内存限制: 512.0MB 本题总分:20 分
问题描述
小蓝发现,对于一个正整数 n 和一个小于 n 的正整数 v,将 v 平方后对 n 取余可能小于 n 的一半,也可能大于等于 n 的一半。
请问,在 1 到 n − 1 中,有多少个数平方后除以 n 的余数小于 n 的一半。
例如,当 n = 4 时,1 , 2 , 3 的平方除以 4 的余数都小于 4 的一半。
又如,当 n = 5 时,1 , 4 的平方除以 5 的余数都是 1 ,小于 5 的一半。而 2 , 3 的平方除以 5 的余数都是 4 ,大于等于 5 的一半。
输入格式
输入一行包含一个整数 n 。
输出格式
输出一个整数,表示满足条件的数的数量。
测试样例1
Input:
5
Output:
2
评测用例规模与约定
对于所有评测用例,1 ≤ n ≤ 10000 。
分析:
给定一个数字N,要我们求小于这个数字所有的整数数字符合不符合这个规律(将 v 平方后对 n 取余可能小于 n 的一半,也可能大于等于 n 的一半。)也就是求出这些数字中计算后有多少数字大于等于n的一半的数量,基础暴力就好了
步骤:
package 第十二届省赛第二套;
import java.util.Scanner;
public class 小平方 {
public static void main(String[] args) {
int count=0;
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
for (int i = 1; i < n; i++) {
if (i*i%n>n/2) {
count++;
}
}
System.out.println(count);
}
}