找新朋友
来源:互联网 发布:网络报装 编辑:程序博客网 时间:2024/06/06 04:21
Description
新年快到了,“猪头帮协会”准备搞一个聚会,已经知道现有会员N人,把会员从1到N编号,其中会长的号码是N号,凡是和会长是老朋友的,那么该会员的号码肯定和N有大于1的公约数,否则都是新朋友,现在会长想知道究竟有几个新朋友?请你编程序帮会长计算出来。
Input
第一行是测试数据的组数CN(Case number,1<CN<10000),接着有CN行正整数N(1<n<32768),表示会员人数。
Output
对于每一个N,输出一行新朋友的人数,这样共有CN行输出。
Sample Input
22560824027
Sample Output
768016016
#include<cctype>#include<cmath>#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>#include<string>#include<queue>#include<stack>#include<set>#include<map>#define REP(i,a,b) for (i=(a);i<=(b);i++)#define CLEAR(a) memset((a),0,sizeof((a)))#pragma comment(linker, "/STACK:1024000000 , 1024000000")using namespace std;typedef long long LL;const double pi = acos(-1.0);const int maxn = 4e4;const float eps = 1e-3;int n;int phi[maxn + 1];void init();void solve();void outp();void get_prime(){ CLEAR(phi); phi[1] = 1; for (int i = 2; i < maxn; i++) if (!phi[i]) { phi[i] = i - 1; for (int j = 2; i * j <= maxn; j++) { if (!phi[i * j]) { phi[i * j] = i * j; } phi[i * j] *= i - 1; phi[i * j] /= i; } }}int main(){ get_prime(); int T; cin >> T; while (T--) { init(); solve(); outp(); } return 0;}void solve(){}void init(){ scanf("%d", &n);}void outp(){ printf("%d\n", phi[n]);}
0 0
- 找新朋友
- 找新朋友
- HDU1286:找新朋友
- 找新朋友
- 找新朋友
- 找新朋友
- hdu1286 找新朋友
- 找新朋友
- 找新朋友 + 数论
- hdu1286-找新朋友
- hdu1286-找新朋友
- HDU1286 找新朋友
- 找新朋友
- 找新朋友
- 找新朋友
- 找新朋友
- hdu1286 找新朋友
- HDU 找新朋友
- iOS 开发中调用手机通讯录的方法
- [球迷]新赛季,大场面!中超亚冠球迷群~群号34294394
- 未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序
- SVN分支操作步骤
- js(jQuery)获取时间的方法及常用时间类
- 找新朋友
- 牛某某动植物检疫徇私舞弊、贪污案
- 螺旋队列算法分析 .
- mac下配置NDK开发环境
- linux下使用lftp的小结
- AndroidStudio 快捷键
- 【02】 机器学习(Standford)笔记 L02
- 【课后作业】第五章概念总结 .
- Java的IO流架构