合数乘积
TimeLimit: 1 Second MemoryLimit: 32 Megabyte
Totalsubmit: 9 Accepted: 2
Description
Thala教授在我 们学院中最受欢迎. 尽管选择Thala教授意味着你今后的学习任务将很多很艰难, 但鉴于当前的世界形势, 学生们需要掌握更多知识来找到好的工作, 因此越来越多的学生想要选择Thala教授作为他们的导师. 然而我们学校有规定, 每个教授带的学生数目都有上限, 因此Thala教授需要挑出最为杰出的学生作为他的弟子. Thala教授知道, 想要学好计算机, 学生们需要丰富的数学知识. 于是, Thala教授总是用许多数学题目来挑选他的学生.这一年, Thala教授的题目之一是这样的: 给出数字n, 如果n可以被表示为2个合数的乘积, 这个数就被叫做"thala number", 否则就被叫做"loser number'. 例如81=9*9, 因此81就是"thala number". Thala教授交给学生们许多数, 要求学生判断这些数是"thala number"还是"loser number".
Softa是 Thala教授的一个疯狂的仰慕者, 他十分渴望成为Thala教授的学生, 并在Thala教授的实验室中学习. Softa知道他必须在Thala教授的考试中表现出色, 否则Thala教授将不会注意到他. 但当面对Thala教授的数字的时候, Softa感到紧张, 他对自己说:"Thala教授的确和传说中一样伟大. 可是这些数字实在太多, 一个人无法在这么短的时间内作出回答. Thala教授一定是想要同时考察学生的数学与编程知识. 因此, 我需要一个程序来计算出答案." 想到了这点, Softa感觉好多了, 因为他有许多朋友参与了"ACM/ICPC"竞赛, 他们可以帮助Softa. 当然, 你也想要想Softa展示你的编程技巧, 因此, 你的程序应该高效, 这样才能让Softa更加钦佩你.
Input
Thala教授发布题目的方式是这样的: 每个学生会收到很多组测试数据, 按Thala教授的规则, 测试数据将越来越难, 这样他就可以轻松地控制学生的数量. 只有回答正确的学生可以进入下一道题目, 否则就会退出考试. 这样下去直到剩余的学生数目等于Thala教授想要的学生数目.Output
对于每组输入数据, 请在时间T之内判断数据中的每一个数是"thala number"还是"loser number", 并输出你的答案. 在每组数据之间输出一个空白行.Sample Input
2 2
81
25
1 1
16
Sample Output
thala number
loser number
thala number
首先除以最小质因子,再除以最小质因子。最后判断这个数是否是合数即可。
#include<stdio.h>
#include<string.h>
#include<math.h>
int main(){
int t,n,c;
int i;
bool e ;
int b;
int flag = 1;
while(scanf("%d%d",&t,&c)!=EOF){
if(!flag ) printf("\n");
flag = 0;
while(t--){
scanf("%d",&n);
e = false;
b = 0;
int d = (int) sqrt((double) n);
for(i=2;i<=d;i++){
if(n%i==0){
b = n/i;
e = true;
break;
}
}
if(!e) {
printf("loser number\n");
continue;
}
e = false;
d = (int)sqrt((double)b);
for(i=2;i<=d;i++){
if(b%i==0){
n = b/i;
e = true;
break;
}
}
if(!e) {
printf("loser number\n");
continue;
}
e = false;
d = (int)sqrt((double)n);
for(i=2;i<=d;i++){
if(n%i==0){
b = n / i;
if(b>1) e = true;
break;
}
}
if(e) printf("thala number\n");
else printf("loser number\n");
}
}
return 0;
}