SDUT 3258 Square Number
来源:互联网 发布:淘宝网天天特价女装 编辑:程序博客网 时间:2024/05/22 21:32
给出
对于一个数
我们记
那么其实一个数对
然后就可以用哈希了
代码如下
#include<bits/stdc++.h>using namespace std;const int maxn = 1123456;#define LL long longint pri[maxn];void sieve(){ memset(pri,-1,sizeof(pri)); pri[1] = 1; for(LL i=2;i<maxn;i++){ if(pri[i] == -1){ pri[i] = i; for(int j=i*2;j<maxn;j+=i){ if(pri[j] == -1) pri[j] = i; else pri[j] *= i; } int cnt = 0; for(LL j=i*i;j<maxn;j*=i){ cnt++; for(LL k=1;k*j<maxn;k++){ if(cnt%2) pri[k*j] /= i; else pri[k*j] *= i; } } } }}int Hash[maxn];int main(){ int T; scanf("%d",&T); int n; sieve(); while(T-- && ~scanf("%d",&n)){ int x; LL ans = 0; memset(Hash,0,sizeof(Hash)); while(n--){ scanf("%d",&x); x = pri[x]; ans += Hash[x]; Hash[x]++; } printf("%lld\n",ans); } return 0;}
0 0
- 【SDUT 3258】Square Number
- sdut 3258 Square Number
- SDUT 3258 Square Number
- sdut 3258 Square Number 打表
- SDUT 3258 Square Number【思维+高效预处理】
- SDut 3257 Cube Number && SDUT 3258 Square Number 超详细题解(数学)
- SDUT 3258 山东省第六届ACM程序设计大赛——H Square Number
- sdut 3258 Square Number(山东声第六届ACM程序设计竞赛)
- SDUT 3258 Square Number(2015年山东省第六届ACM大学生程序设计竞赛)
- Square Number-3258拆平方
- “浪潮杯”山东省第6届acm省赛 sdut3258 Square Number sdut 3257 Cube Number
- Square Number
- Square Number
- float number square root
- Lesson2 Square number
- SDUT 2633 I-number
- SDUT 2151 - Phone Number
- 【SDUT 3257】Cube Number
- jquery监听鼠标滚轮(滚动)事件
- rabbitmq 配置详解
- PS中截取一个圆形,画圆
- Java 判断字符串中是否包含中文
- java面向对象总结第二部分
- SDUT 3258 Square Number
- Xcode 7各版本(dmg)官方直接下载(离线下载)
- Google C++ Style Guide----作用域
- Hibernate性能优化
- 2.2.位与位或位异或在操作寄存器时的特殊作用
- js中的小技巧(一)
- 图解命令行http工具curl使用初步
- 【从零开始学NGUI 】 (十二)UIGrid
- 关于info.plist