http://acm.hdu.edu.cn/showproblem.php?pid=1787 典型 欧拉函数(为何c++ 那样会RE)
2010-08-04 23:59
387 查看
]#include <iostream> #include <cstdio> #include <cstring> #include <cmath> using namespace std; const int N = 10005; bool hash ; int main() { int n; memset(hash, false, sizeof(hash)); for(int i = 2; i <= 100; i++) if(!hash[i]) for(int j = i * i; j < N; j += i) hash[j] = true; while( scanf("%d", &n) != EOF && n) { int s = n; int sum = n; bool flag; //for(int i = 2; i <= (int)sqrt(1.0 * n); i++) // 这样RE ?? for(int i = 2; i < N; i++) { if(hash[i]) continue; flag = false; if(s == 1 || i > n) break; while(true) { if(s % i != 0 || s == 1) break; flag = true; s /= i; } if(flag) sum = sum / i * (i - 1); } if(s > 1) sum = sum / s * (s - 1); //printf("%d/n", sum); printf("%d/n", n - sum - 1); } return 0; }
相关文章推荐
- http://acm.hdu.edu.cn/showproblem.php?pid=3501 欧拉函数
- http://acm.hdu.edu.cn/showproblem.php?pid=1719
- http://acm.hdu.edu.cn/showproblem.php?pid=3519
- http://acm.hdu.edu.cn/showproblem.php?pid=1754 更新节点,区间最值
- http://acm.hdu.edu.cn/showproblem.php?pid=1686
- http://acm.hdu.edu.cn/showproblem.php?pid=2717,有所借鉴哦!!
- http://acm.hdu.edu.cn/showproblem.php?pid=1540 更新节点,询问节点所在的位置有多少连续的区间
- http://acm.hdu.edu.cn/showproblem.php?pid=4512
- http://acm.hdu.edu.cn/showproblem.php?pid=1238
- http://acm.hdu.edu.cn/showproblem.php?pid=1823 二维线段树
- http://acm.hdu.edu.cn/showproblem.php?pid=1779 线段树 求区间最大值 结点更新
- http://acm.hdu.edu.cn/showproblem.php?pid=1018
- Choose the best route(http://acm.hdu.edu.cn/showproblem.php?pid=2680)
- http://acm.hdu.edu.cn/showproblem.php?pid=4514
- Trouble&&http://acm.hdu.edu.cn/showproblem.php?pid=4334
- http://acm.hdu.edu.cn/showproblem.php?pid=1905 素数判断 + 二分
- http://acm.hdu.edu.cn/showproblem.php?pid=3524 (奇偶矩阵乘法 打表)
- http://acm.hdu.edu.cn/showproblem.php?pid=1142
- http://acm.hdu.edu.cn/showproblem.php?pid=1166 更新节点,区间求和
- 导弹拦截二&&http://acm.hdu.edu.cn/showproblem.php?pid=1257