尤拉函式求法

2021-09-12 21:04:26 字數 761 閱讀 8729

法一:根號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 顯然,用這個方法來計算單個尤拉函式是可以求解的。附...