hdu 七夕节
2012-08-30 02:55
99 查看
七夕节 |
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) |
Total Submission(s): 1883 Accepted Submission(s): 738 |
[align=left]Problem Description[/align] 七夕节那天,月老来到数字王国,他在城门上贴了一张告示,并且和数字王国的人们说:"你们想知道你们的另一半是谁吗?那就按照告示上的方法去找吧!" 人们纷纷来到告示前,都想知道谁才是自己的另一半.告示如下:数字N的因子就是所有比N小又能被N整除的所有正整数,如12的因子有1,2,3,4,6. 你想知道你的另一半吗? |
[align=left]Input[/align] 输入数据的第一行是一个数字T(1<=T<=500000),它表明测试数据的组数.然后是T组测试数据,每组测试数据只有一个数字N(1<=N<=500000). |
[align=left]Output[/align] 对于每组测试数据,请输出一个代表输入数据N的另一半的编号. |
[align=left]Sample Input[/align]3 2 10 20 |
[align=left]Sample Output[/align]1 8 22 |
[align=left]Author[/align] Ignatius.L |
[align=left]Source[/align] 杭电ACM省赛集训队选拔赛之热身赛 |
[align=left]Recommend[/align] Eddy |
![](http://pic002.cnblogs.com/images/2012/440836/2012083002444525.jpg)
再减去本身即为所求。
PS:归纳分解质因数后的三种运算
将n分解质因素,结果如下:
![](http://pic002.cnblogs.com/images/2012/440836/2012083002460453.jpg)
a、所有整除n的数个数为:
![](http://pic002.cnblogs.com/images/2012/440836/2012083002472469.jpg)
b、所有整除n的数的和为:
![](http://pic002.cnblogs.com/images/2012/440836/2012083002444525.jpg)
c、所有小于n且与n互素的数(包括1)的个数为:
![](http://pic002.cnblogs.com/images/2012/440836/2012083002503731.jpg)
Example : n=24=233, thus p1=2, p2=3, e1=3, e2=1
all the positive factors are:1, 2, 3, 4, 6, 8, 12, 24 (8 terms)
all the relatively prime numbers to 24 within 1~24 are:
1, 5, 7, 11, 13, 17, 19, 23 (8 terms)
![](http://pic002.cnblogs.com/images/2012/440836/2012083002525923.jpg)
![](http://pic002.cnblogs.com/images/2012/440836/2012083002531545.jpg)
![](http://pic002.cnblogs.com/images/2012/440836/2012083002533698.jpg)
#include<cstdio> #include<cmath> #include<cstring> int prime[801]; int isprime[801]; int kp; int factor[1001]; int kf[1001]; int cnt; void printprime() { int i, j, t; prime[kp++] = 2; isprime[4] = 1; for (i = 3; i < 800; i += 2) { if (isprime[i] == 0) prime[kp++] = i; for (j = 0; t = i * prime[j] < 800; ++j) { isprime[t] = 1; if (i % prime[j] == 0) break; } } } int main() { int i, T, n; double ans; printprime(); scanf("%d", &T); while (T--) { scanf("%d", &n); cnt = 0; int N = n; for (i = 0; i < kp && prime[i] <= sqrt(n); ++i) { if (n % prime[i] == 0) { factor[cnt] = prime[i]; kf[cnt] = 1; n /= prime[i]; while (n % prime[i] == 0) { ++kf[cnt]; n /= prime[i]; } ++cnt; } } if (cnt == 0) { printf("1\n"); continue; } if (n != 1) { factor[cnt] = n; kf[cnt] = 1; cnt++; } ans = 1; for (i = 0; i < cnt; ++i) ans *= (pow(factor[i], kf[i] + 1) - 1) / (factor[i] - 1); printf("%.0f\n", ans - N); } return 0; }
相关文章推荐
- hdu 1215--七夕节
- HDU 1215 七夕节(筛选法)
- hdu 1215 七夕节
- HDU - 1215 七夕节 (可以用类似于素数筛选法写,也可以直接写(直接写的时候要注意的地方很多))
- HDU 1215 七夕节(筛选法)
- HDU 1215 七夕节(筛选法)
- 【筛法思想】HDU 1215—— 七夕节
- HDU 1215 七夕节
- HDU_1215 七夕节
- hdu 1215 七夕节
- NYOJ 478 月老的烦恼(1)【因字数&&HDU 1215 七夕节】
- hdu-七夕节
- HDU 1215 七夕节 筛选法
- HDU 1215 七夕节
- HDU-----1215---七夕节
- HDU 七夕节
- HDU 1215 七夕节
- hdu 1215 七夕节
- HDOJ 1215 HDU 1215 七夕节 ACM 1215 IN HDU
- HDU-1215-七夕节