法一:根號n做法
int phi(int n)
} if(n>1)ans = ans/n*(n-1);
return ans;
}
法二:線性篩做法
//寫在前面
//對於尤拉函式有如下三條性質 p為素數
//1、phi(p)=p-1
//2、當p與i互質時有: phi(p*i)=phi(p)*phi(i)
//3、當i%p==0時有:phi(p*i)=p*phi(i)
#include #include #define maxn 1005
using namespace std;
int visit[maxn];
int prime[maxn];//儲存素數
int phi[maxn];//記錄下標的尤拉函式
int tot;//記錄素數的個數
void euler()
else
} }}
int main()
ll mul(ll x,ll y,ll mod)//¿ìëù¼ó
return ans;
}ll fast_pow(ll x,ll y,ll m)//¿ìëùãý
return ans;
} bool mr(ll n)
for(int i=0; i<12; i++)
int main()
尤拉函式的求法
定義 尤拉函式f n 表示小於或等於n的數中與n互質的數的個數 通式 f n n 1 1 p1 1 1 p2 1 1 pn 其中p1,p2 pn為x的所有質因數,x是不為0的整數。1 1 唯一和1 互質的數 小於等於1 就是1本身 注意 每種質因數只乙個。比如12 2 2 3那麼 12 12 1 1...
尤拉函式的求法
long long eular long long n if n 1 ans ans n return ans const int maxn 1e5 const int branch 26 const int inf 0x3f3f3f3f const int mod 1e6 7 int euler ...
尤拉函式性質與求法 數論 尤拉函式
n的尤拉函式值用符號 n 表示 尤拉函式的定義是,對於乙個正整數n,小於n且與n互質的數的數目 包括1,特殊地,1 1 設p1,p2,p3,pr為n的全部r個質因數,則有 n n 1 1 p1 1 1 p2 1 1 p3 1 1 p4 1 1 pr 顯然,用這個方法來計算單個尤拉函式是可以求解的。附...