[GESP202403 三级] 完全平方数
题目描述
小杨同学有一个包含 $n$ 个非负整数的序列 $A$,他想要知道其中有多少对下标组合 $<i,j>$($1 \leq i < j \leq n$),使得 $A_i + A_j$ 是完全平方数。
如果 $x$ 是完全平方数,则存在非负整数 $y$ 使得 $y \times y = x$。
输入格式
第一行一个非负整数 $n$,表示非负整数个数。
第二入行包含 $n$ 个非负整数 $A_1, A_2, \dots A_n$,表示序列 $A$ 包含的非负整数。
输出格式
输出一行一个整数表示答案。
样例 #1
样例输入 #1
5
1 4 3 3 5
样例输出 #1
3
提示
对全部的测试数据,保证 $1 \leq n \leq 1000$,$0 \leq A_i \leq 105$。
代码
整数去重
题目描述
给定含有 $n$ 个整数的序列,要求对这个序列进行去重操作。所谓去重,是指对这个序列中每个重复出现的数,只保留该数第一次出现的位置,删除其余位置。
输入格式
输入包含两行:
第一行包含一个正整数 $n$($1 \le n \le 20000$),表示第二行序列中数字的个数;
第二行包含 $n$ 个整数,整数之间以一个空格分开。每个整数大于等于 $10$ 、小于等于 $100$。
输出格式
输出只有一行,按照输入的顺序输出其中不重复的数字,整数之间用一个空格分开。
样例 #1
样例输入 #1
5
10 12 93 12 75
样例输出 #1
10 12 93 75
代码
开关灯
题目描述
假设有 $N$ 盏灯($N$ 为不大于 $5000$ 的正整数),从 $1$ 到 $N$ 按顺序依次编号,初始时全部处于开启状态;第一个人($1$ 号)将灯全部关闭,第二个人($2$ 号)将编号为 $2$ 的倍数的灯打开,第三个人($3$ 号)将编号为 $3$ 的倍数的灯做相反处理(即,将打开的灯关闭,将关闭的灯打开)。依照编号递增顺序,以后的人都和 $3$ 号一样,将凡是自己编号倍数的灯做相反处理。问当第 $N$ 个人操作完之后,有哪些灯是关闭着的?
输入格式
输入为一行,一个整数 $N$,为灯的数量。
输出格式
输出为一行,按顺序输出关着的灯的编号。编号与编号之间间隔一个空格。
样例 #1
样例输入 #1
10
样例输出 #1
1 4 9
样例 #2
样例输入 #2
5
样例输出 #2
1 4
代码