本文主要是介绍合数乘积,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
点击打开链接
合数乘积
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;
}
这篇关于合数乘积的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!