1. 程式人生 > >ACM 入門1169

ACM 入門1169

/* 題目描述
輸入一個大於1的正整數,判斷它是否為素數(prime,又稱質數)。
如果這個數是素數,則輸出yes,否則輸出no。 末尾輸出換行。
輸入 一個大於1的正整數
輸出 根據輸入資料,判斷概述是否為素數。如果這個數是素數,則輸出yes,否則輸出no。
注意末尾輸出換行。
樣例輸入 7
樣例輸出 yes */

少一位數法

#include<stdio.h>
int main()
{
    int n,i=1;
    scanf("%d",&n);
    for(i=2;i<=n-1;i++)        //判定素數,萬分記住,一定需要判定其-1或平方根和2區間能否有整數整除;
    if(n%i==0) break;          //如果其除以i等於0,立刻停止進行判定
    if(i>n-1)printf("yes\n"); //如果i以及超過了原值,證明沒有數可整除,素數
    else printf("no\n");       //反之選擇可以。
    return 0;
}

平方根法


#include<stdio.h>
#include<math.h>
int main()
{
    int n,i=1;
    int k;
    scanf("%d",&n);
    k=sqrt(n);
    for(i=2;i<k;i++)        //判定素數,萬分記住,一定需要判定其-1或平方根和2區間能否有整數整除;
    if(k%i==0) break;          //如果其處以i等於0,立刻停止進行判定
    if(i>=k)printf("yes\n");  //如果i以及超過了原值,證明沒有數可整除,素數
    else printf("no\n");       //反之選擇可以。
    return 0;
}