「オイラー関数」の編集履歴(バックアップ)一覧に戻る
オイラー関数」を以下のとおり復元します。
*問い5-1
504以下で504と互いに素な数の個数とその合計。

 #include<stdio.h>
 int phi(int n){
	double re=n;
	for(int i=2;i*i<=n;i++){
		int count=0;
		while(n%i==0){
			n/=i;
			count++;
		}
		if(count!=0)re*=(1.0-1.0/i);
	}
	if(n!=1)re*=(1.0-1.0/n);
	return re+0.5;
 }
 void calc(int n){
	int k=phi(n);
	printf("%d %d",k,k/2*n);
 }
 int main(){
	calc(504);
 }

復元してよろしいですか?