摘要:
这个要是直接用找有公约数的会超时的。要用筛选法,就是在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 阅读全文