首页 > 代码库 > POJ 2407 Relatives(欧拉函数)
POJ 2407 Relatives(欧拉函数)
题目链接
题意 : 求小于等于n中与n互质的数的个数。
思路 : 看数学的时候有一部分是将欧拉函数的,虽然我没怎么看懂,但是模板我记得了,所以直接套了一下模板。
这里是欧拉函数的简介。
1 #include <iostream> 2 #include <cstdio> 3 #include <cstdlib> 4 #include <cstring> 5 #include <cmath> 6 7 using namespace std; 8 9 int main() 10 { 11 int x; 12 while (scanf("%d", &x) && x ) 13 { 14 int res = x; 15 for (int i =2; i < (int) sqrt(x *1.0) +1; i++) 16 { 17 if (x % i ==0) 18 { 19 res = res / i * (i -1); 20 while (x % i ==0) 21 x /= i; // 保证i一定是素数 22 } 23 } 24 if (x > 1) 25 res = res / x * (x -1); 26 printf("%d\n", res); 27 } 28 return 0; 29 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。