1. 程式人生 > >【九度】題目1047:素數判定

【九度】題目1047:素數判定

: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
****************************************************************/