hdu1286!【数学】

来源:互联网 发布:html5 炫酷展示页源码 编辑:程序博客网 时间:2024/05/16 14:25

找新朋友

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 7578    Accepted Submission(s): 3977


Problem 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
 

Author
SmallBeer(CML)
 

Source
杭电ACM集训队训练赛(VII)
 

Recommend
lcy   |   We have carefully selected several similar problems for you:  1215 1406 1164 1787 1211 
#include<stdio.h>#include<string.h>int  b[33000],c[33000];int main(){int i, j, k, l;int sum,n, m;scanf("%d", &n);while(n--){scanf("%d", &m);k  = 0;sum = 0;memset(b, 0, sizeof(b));for( j = 2; j  <= m/2; j++)//yueshu{if(m % j == 0)c[k++] = j;}for(j = 0 ;j < k; j++){for(l = c[j]; l < m; l += c[j])b[l] = 1;}for(j = 1; j < m; j++)if(!b[j])sum++;printf("%d\n", sum);}return 0;}

本以为打表是万能的,结果在这里给跪了。
0 0