摘要: 通过不断的寻找2^a*3^b*5^c*7^d按顺序的数就可以了……#include <iostream>#include <cmath>using namespace std;__int64 ans[6000];int find(int a,int b,int c,int d){ int aa=a>b?b:a; int bb=c>d?d:c; return aa>bb?bb:aa;} void init(){ int a,b,c,d,min,a1,b1,c1,d1; a=b=c=d=0; ans[0]=1; for(int i=1;i<=5842 阅读全文
posted @ 2013-05-22 21:08 _随心所欲_ 阅读(117) 评论(0) 推荐(0)
摘要: 快速求出欧拉函数值……注意数据类型,否则会超时的#include<iostream>using namespace std;const long MMAX=3000000;__int64 Euler[MMAX];void Get_Euler(){ int i,j; for(i=1;i<MMAX;i++) Euler[i]=i; for(i=2;i<MMAX;i++) { if(Euler[i]==i) { for(j=i;j<MMAX;j+=i) Euler[j]=Euler[j]/i*(i-1); } }}int main(){ Get_Euler(); int 阅读全文
posted @ 2013-05-22 15:04 _随心所欲_ 阅读(130) 评论(0) 推荐(0)
摘要: 简单的欧拉函数……#include<iostream>using namespace std;typedef __int64 int64;//const long mod=1000000007;int64 fun(int64 n){ int64 ans=1; for(int i=2;i*i<=n;i++) { if(n%i==0) { n/=i; ans=ans*(i-1); while(n%i==0) { n/=i; ans=ans*i; } } } if(n>1) ans*=n-1; return ans;}int main(){ int64 n,... 阅读全文
posted @ 2013-05-22 08:44 _随心所欲_ 阅读(115) 评论(0) 推荐(0)