hdu 1286 找新朋友

http://acm.hdu.edu.cn/showproblem.php?pid=1286

也是筛法,但感觉...囧...有点不真实...好吧

 1 #include<stdio.h>
 2 #include<string.h>
 3 #define MAX 33000
 4 int a[MAX];
 5 int main()
 6 {
 7     int i,j,n,x,k,num;
 8     scanf("%d",&n);
 9     while(n--)
10     {
11         scanf("%d",&x);num=0;
12 memset(a,0,sizeof(a)); 13 for(i=2;i<=x/2+1;i++) 14 if(x%i==0) 15 { 16 for(k=i;k<x;k+=i) //这行很重要,否则有超时的风险(虽然尝试了也AC了吧....囧) 17 a[k]=1; 18 19 } 20 for(i=1;i<x;i++) 21 { 22 if(a[i]==0) 23 num++; 24 } 25 printf("%d\n",num); 26 } 27 28 }

 这题还有个方法用欧拉函数,好像直接就能求出规定范围内与n互质的整数个数(⊙o⊙)

http://blog.csdn.net/gray_1566/article/details/24491811

还没好好看这个,先mark下。

posted on 2014-07-25 21:01  薛定谔的熊猫  阅读(113)  评论(0编辑  收藏  举报

导航