hdoj 1286 找新朋友【水】

来源:互联网 发布:pkpm2010软件下载 编辑:程序博客网 时间:2024/06/08 07:43
#include <stdio.h>#include <stdlib.h>#include <math.h>#include <stack>using namespace std;bool flag[32768],staue[32768];inline void makePrime(){int i, j;for(i=2; i<sqrt(32768); i++)if(flag[i] == true)for(j = i + i; j < 32768; j += i)flag[j] = false;}int main(){int i, j, t, n, ans;memset(flag, true, sizeof(flag));makePrime();scanf("%d", &t);while(t--){memset(staue, true, sizeof(staue));scanf("%d", &n);ans = n - 1;for(i=2; i<n; i++)/*终止条件不能使用sqrt(n),例如15存在3*5,如果使用sqrt,5不能判断出来*/ if(flag[i] && n % i == 0)for(j=i; j<n; j+=i)if(staue[j] == true){ans--;staue[j] = false;}printf("%d\n", ans);}return 0;}