合数乘积

点击打开链接


合数乘积

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;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值