Hdoj 1286 find new friends [Euler's function of number theory], hdoj1286
Find new friends
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission (s): 7912 Accepted Submission (s): 4157
Problem Description the New Year is approaching. The pig Association is preparing to have a party. We already know that there are N members and the number of members ranges from 1 to N. The number of the President is N, if you are an old friend of the president, the member's number must have an appointment with N greater than 1. Otherwise, they will all be new friends. Now the president wants to know how many new friends there are? Compile a program to help the President calculate it.
The first line of Input is the number of test data groups CN (Case number, 1 <CN <10000), followed by a positive integer N (1 <n <32768) in CN, indicating the number of members.
Output outputs the number of new friends in a row for each N, so that a total of CN rows are Output.
Sample Input
22560824027
Sample Output
768016016
Template:
#include <stdio.h>#include <string.h>int oular(int n){int sum = 1;for(int i = 2; i*i <= n; i ++){if(n%i == 0){n /= i; sum *= (i-1);while(n%i == 0){sum *= i;n /= i;}}}if(n > 1) sum*=(n-1);return sum;}int main(){int t, n;scanf("%d", &t);while(t --){scanf("%d", &n);printf("%d\n", oular(n));}return 0;}