题目1047:素数判定
时间限制:1 秒内存限制:32 兆特殊判题:否提交:6455解决:2938
题目描述:
给定一个数n,要求判断其是否为素数(0,1,负数都是非素数)。
输入:
测试数据有多组,每组输入一个数n。
输出:
对于每组输入,若是素数则输出yes,否则输入no。
样例输入:
13
样例输出:
yes
来源:
2009年哈尔滨工业大学计算机研究生机试真题
答疑:
解题遇到问题?分享解题心得?讨论本题请访问:http://t.jobdu.com/thread-7771-1-1.html
【解题思路】
素数判定,常规解法。
时间限制:1 秒内存限制:32 兆特殊判题:否提交:6455解决:2938
题目描述:
给定一个数n,要求判断其是否为素数(0,1,负数都是非素数)。
输入:
测试数据有多组,每组输入一个数n。
输出:
对于每组输入,若是素数则输出yes,否则输入no。
样例输入:
13
样例输出:
yes
来源:
2009年哈尔滨工业大学计算机研究生机试真题
答疑:
解题遇到问题?分享解题心得?讨论本题请访问:http://t.jobdu.com/thread-7771-1-1.html
【解题思路】
素数判定,常规解法。
Java AC
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.StreamTokenizer;
public class Main {
/*
* 1047 2014年7月1日11:26:43
*/
public static void main(String[] args) throws Exception {
StreamTokenizer st = new StreamTokenizer(new BufferedReader(
new InputStreamReader(System.in)));
while (st.nextToken() != StreamTokenizer.TT_EOF) {
int num = (int) st.nval;
if (num <= 1) {
System.out.println("no");
continue;
}
boolean flag = false;
for (int i = 2; i < num; i++) {
if (num % i == 0) {
flag = true;
break;
}
}
System.out.println(flag ? "no" : "yes");
}
}
}
/**************************************************************
Problem: 1047
User: wangzhenqing
Language: Java
Result: Accepted
Time:60 ms
Memory:14552 kb
****************************************************************/
C++ AC
#include <stdio.h>
int main(){
int num;
while(scanf("%d", &num) != EOF){
if(num <= 1){
printf("no\n");
continue;
}
bool flag = false;
for(int i = 2; i < num; i++){
if(num % i == 0){
flag = true;
break;
}
}
printf(flag ? "no\n" : "yes\n");
}
return 0;
}
/**************************************************************
Problem: 1047
User: wangzhenqing
Language: C++
Result: Accepted
Time:0 ms
Memory:1020 kb
****************************************************************/