2012年8月16日
摘要: 这个要是直接用找有公约数的会超时的。要用筛选法,就是在2到x/2中找到能被x整除的数,然后将那个数标记用hash[i]=1(hash初始化为0);再将那个数的倍数(小与x)找到再将他们标记(即都符合是有大于1 的公约数)最后找到标记为0的个数s(及新朋友),要减1(因为刚才算的都没包括x,hash[x]=0的本身要除掉),网上的还用了欧拉公式(比较牛的)筛选法代码:View Code 1 #include<iostream> 2 #include<string> 3 using namespace std; 4 /*int gcd(int a,int b) 5 { 6 阅读全文
posted @ 2012-08-16 10:24 xinmenghuairi 阅读(264) 评论(0) 推荐(0) 编辑