Notice: Undefined index: name in /usr/www/lib/views/home/viewtitle.html on line 188
-阅读程序 第 17 题
#include <cstdio>
#include <cmath>
const int N = 1e9;
int isnp[50005],p[50005],pcnt;

inline void getPrime(const int n = sqrt(N)) {
	isnp[0]= isnp[1]=1;
	for (register int i=2; i<=n; ++i) {
		if (!isnp[i]) p[pcnt++]=i;
		for (register int j=0; i*p[j]<=n && j<pcnt; ++j) {
			isnp[i*p[j]]=1;
			if (!(i% p[j])) break ;
		}
	}
}

int main() {
	getPrime();	int n;
	while (scanf(" %d", &n) && n) {
		int _sqrt = sqrt(n),ans= n;
		for (register int j = 0; p[j]<=_sqrt && j<pcnt; ++j) {
			if (n % p[j]==0) {
				while (n % p[j]==0)n/=p[j];
				ans = 1ll * ans *(p[j]-1)/ p[j];
			}
		}
		if (n!=1) ans = 1ll* ans * (n-1)/n;
		printf("%d\n", ans);
	}
	return 0;
}
● 判断题
第 1 题 若去掉第12行,程序也能得到正确结果。()
第 2 题 若去掉第23行,程序也能得到正确结果。()
第 3 题 若输入的 n≤10^8,则第10行j
第 4 题 若输入的 n≤10^8,则第21行j
● 单选题
第 5 题 当n=504时,输出ans 为() 。
第 6 题 getPrime函数的时间复杂度是( ) 。

解答部分以后会开放。