📄 102.c
字号:
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
int pf(int *zy)
{
int i;
int a=1, b=1;
for (i=0; i<zy[1]; i++)
{
a = a*zy[0];
}
for (i=0; i<zy[1]-1; i++)
{
b = b*zy[0];
}
return a-b;
}
int main()
{
int N, i, j, y, *zys, zysc, zy[6][2];
int count;
do
{
zys = (int *)malloc(sizeof(int) * 1229);
}
while (0==zys);
zys[0] = 2;
for (zysc=1, i=3; i<9974; i++)
{
y=1;
N=(int)sqrt((double)i);
for (j=2; j<=N; j++)
{
if (0==i%j)
{
y=0;
break;
}
}
if (1==y)
{
zys[zysc] = i;
zysc++;
}
}
scanf("%d", &N);
if (1==N)
{
printf("1");
}
else
{
for (j=0, i=0; 1!=N; i++)
{
if (0==N%zys[i])
{
N = N/zys[i];
zy[j][0]=zys[i];
zy[j][1]=1;
for (; 0==N%zys[i]; )
{
N = N/zys[i];
zy[j][1]++;
}
j++;
}
}
for (count=1, i=0; i<j; i++)
{
count = count*pf(zy[i]);
}
printf("%d", count);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -