杭电校赛(质方数)
来源:互联网 发布:软件问题跟踪表 编辑:程序博客网 时间:2024/05/01 16:40
质方数
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3611 Accepted Submission(s): 1212
Problem Description
小明天生对数字比较敏感,3岁的时候就能背诵圆周率一百位。
现在,小明慢慢长大了,但依然很喜欢数字,最近,他迷上了质数和平方数,并且自己把质数的平方命名为“质方数”。
现在,他在研究这样一个问题:距离一个正整数N最接近的质方数是多少?
现在,小明慢慢长大了,但依然很喜欢数字,最近,他迷上了质数和平方数,并且自己把质数的平方命名为“质方数”。
现在,他在研究这样一个问题:距离一个正整数N最接近的质方数是多少?
Input
输入数据第一行是一个正整数T(T<=20),表示有T组输入数据。
接下来T行,每行输入一个正整数N(1<=N<=10^8)。
接下来T行,每行输入一个正整数N(1<=N<=10^8)。
Output
对于每组数据,请输出距离N最接近的质方数,每组输出占一行。
Sample Input
2110
Sample Output
49
思路:模拟
AC代码:
#include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <queue>#include <stack>#include <map>#include <cstring>#include <climits>#include <cmath>#include <cctype>typedef long long ll;using namespace std;const int maxn = 10010;int prime;bool isprime[maxn];int loc[maxn];int k;void doprime(){ k = 0; int i,j; memset(isprime,true,sizeof(isprime)); for(i=2; i<maxn; i++) { if(isprime[i]) { loc[k++] = i*i; for(j=i*i; j<maxn; j+=i) { isprime[j] = false; } } }}int main(){ int i; doprime(); int t,n; scanf("%d",&t); while(t--) { int x; scanf("%d",&n); int min1 = INT_MAX; for(i=0; i<k; i++) { if(abs(loc[i] - n) < min1) { x = i; min1 = abs(loc[i] - n); } if(loc[i] >= n) break; } printf("%d\n",loc[x]); } return 0;}
0 0
- 杭电校赛(质方数)
- 质方数
- 质方数
- 杭电校赛(油菜花王国)
- 杭电校赛(游乐场)
- 杭电校赛(搬砖)
- 杭电校赛(投币洗衣机)
- 杭电校赛(ACM组队安排)
- 杭电校赛(逆袭指数)
- hdu 计算机学院大学生程序设计竞赛(2015’11)质方数
- 计算机学院大学生程序设计竞赛(2015’11)1004 质方数
- 2015杭电校赛 1007油菜花王国(并查集)
- 2015’12杭电校赛1002 Polygon (计算几何)
- 2015’12杭电校赛1004 Happy Value (最大生成树)
- 2015‘12杭电校赛1008 Study Words(map,vector瞎搞)
- 2015’12杭电校赛1005 Bitwise Equations(二进制找规律)
- 2015‘12杭电校赛1006 01 Matrix(二维DP)
- HDU-计算机学院大学生程序设计竞赛(2015’11)1004 质方数(打表)
- 计算机如何表示浮点数(小数)
- jade模板引擎(一)
- ASP.NET login控件
- 编译原理(九) LR(0)文法分析法(算法描述和C++代码实现)
- 南大软院大神养成计划——第十七天
- 杭电校赛(质方数)
- coderforce 483A Counterexample
- 历史的纠缠
- 聚合分析:二进制计数器
- 带梯度效果的圆形进度View
- 文章标题
- 给于 dom 解析的跳转框架
- weka和matlab完成完整分类实验
- vim编辑器 保存命令