1. 程式人生 > >如何判斷一個數是否為素數(質數)?

如何判斷一個數是否為素數(質數)?

用For語句實現迴圈

  • 基本思路:若一個數n能被2和√n之間的數整除(取餘為0),則可判斷n為素數。可從2開始測試,一直到√n為止。
  • For語句語法規則
    一般形式:
    for(表示式1;表示式2;表示式3) 語句
    for(迴圈變數賦初值;迴圈條件;迴圈變數增值) 語句

這裡寫圖片描述

  • 實現過程:從i=2開始測試,判斷迴圈條件(i<=q),若成立則進入第一個if語句,判斷n對i取餘是否為0。若為0,直接跳出for迴圈體,進入for語句的下一語句,即第二個if語句;若不成立,執行表示式3(i++),再次進入for迴圈,直到 i>q後,跳出for迴圈,進入第二個if語句。若 i<=q,說明在測試到√n之前已經有一個 數能被n整除,即n不是素數。若 i>q,說明從2測試到√n都沒有一個數能被n整除,直到測試到大於√n才因為不滿足for迴圈條件跳出,即n是素數。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
    int n,i,q;

    while(scanf("%d",&n)!=EOF)
    {q=(int)sqrt(n);               //注意函式呼叫的格式
    for(i=2;i<=q;i++)
        if(n%i==0)
            break;
        if(i<=q)
            printf("No\n");
        else
printf("Yes\n"); } return 0; }

如何將下列流程圖寫成程式碼?
這裡寫圖片描述

相關推薦

判斷個數是否素數質數-- 程式碼優化

【概念】 質數又稱素數。一個大於1的自然數,除了1和它自身外,不能整除其他自然數的數叫做質數;否則稱為合數。 這裡以Python程式碼為例,最簡單的一種想法,按照概念: def is_prime(num

如何判斷個數是否素數質數

用For語句實現迴圈 基本思路:若一個數n能被2和√n之間的數整除(取餘為0),則可判斷n為素數。可從2開始測試,一直到√n為止。 For語句語法規則 一般形式: for(表示式1;表示式2;表示式3) 語句 for(迴圈變數賦初值;迴圈條件;迴圈變數

java 判斷個數是否素數質素

判斷k是否為素數,最基本的方法就是判斷2—k的平方根範圍裡面是否有一個數能被k整除,即k % i == 0是否成立,若成立則不是素數,否則就是素數。下面是基於java的實現。 package com.

快速判斷個數是否是素數模板

bool isPrime( int num ) { if(num ==2|| num==3 ) //兩個較小數另外處理 return 1 ; if(num %6!= 1&&num %6!= 5) //不在6

用JAVA判斷個數是否素數(質數)

素數(prime number)又稱質數,有無限個。質數定義為在大於1的自然數中,除了1和它本身以外不再有其他因數的數稱為質數。 有時經常遇到用java判斷素數的問題,為大家貼上怎麼用java判斷出

C:冒泡排序&判斷個數是否素數&求平方根的叠代公式

mat stdio.h ret 找不到 nbsp emp prim 冒泡排序 公式 冒泡排序 #include<stdio.h> int main () { int i,j,n,temp,a[10]; scanf("%d",&n);

C語言之判斷個數是否素數

#include "stdio.h" #include"time.h" #include"math.h" int isPrimeNumber(int number) { //判斷是否為素數 float sqrtOfNum = sqrt((double) number); for

Python之判斷個數是否素數

import math def is_prime(number): # 判斷是否為素數 sqrt = int(math.sqrt(number)) for j in range(2, sqrt + 1): # 從2到number的算術平方根迭代 if in

C++之判斷個數是否素數

#include <iostream> #include "math.h" using namespace std; bool isPrimeNumber(int number) { //判斷是否為素數 float sqrtOfNum = sqrt(number);

Java之判斷個數是否素數

public class PrimeNumberTest { public static void main(String[] args) { long start = System.currentTimeMillis(); System.out.prin

C語言判斷個數是否素數

所謂素數,是指除了1和本身之外,不能被其他任何整數整除的數。 判斷一個數n(n>=3)的方法:將n作為被除數,將2到(n-1)各個整數先後做除數,如果都不能被整除,則n為素數。 演算法分析: S1:輸入n的值 S2:i=2(i作為除數) S3:n被i除,得餘數r,r=

java 判斷個數是否素數

import java.util.Scanner; public class sushu {public static void main(String[] args) {// TODO Auto-generated method stub /// 掃描器,接收控制檯輸入資

判斷個數是否素數的方法彙總

time命令輸出的資訊 [1] real : 表示程式整個的執行耗時。可以理解為foo執行開始時刻你看了一下手錶,程式執行結束時,你又看了一下手錶,兩次時間的差值就是本次real 代表的值 [2]user :這個時間代表的是foo執行在使用者態的c

C語言:判斷個數是否素數

題目來源:大工慕課 連結 作者:Caleb Sung 注意事項 判斷一個數是否為質數,首先我們需要知道質數的定義:對於大於1的數,如果除了1和它本身,它不能再被其它正整數整除,那麼我們說它

C語言之判斷100~200之間的素數質數

題目描述:編寫程式找出100~200之間的個素數,並輸出所有素數。 素數的定義:在大於1的自然數中,除了1和它本身以外不再有其他因數的數稱為質數。 所以本題的思路是將一個數除以2到本身減1,不過我們

php判斷個數是否質數素數

以下內容僅為個人參考,如有錯誤,請多多指教! <?php header('Content-Type:text/html;charset=utf-8'); $num = isset($_GET['

判斷個數是否質數/素數——從普通判斷演算法到高效判斷演算法思路

最直觀的方法,根據定義,因為質數除了1和本身之外沒有其他約數,所以判斷n是否為質數,根據定義直接判斷從2到n-1是否存在n的約數即可。C++程式碼如下:bool isPrime_1( int num ) { int tmp =num- 1; for(int i= 2;i <=tmp; i

Java判斷個數是否質數/素數,以及素數

題目描述 給定一個正整數,編寫程式計算有多少對質數的和等於輸入的這個正整數,並輸出結果。輸入值小於1000。 如,輸入為10, 程式應該輸出結果為2。(共有兩對質數的和為10,分別為(5,5),(3,7)) import java.util.Scanner; publ

判斷個數是否質數,輸入任意個數後進行判斷

#include<stdio.h>#include<math.h>//巨集定義布林型別#define BOOL int#define TRUE 1#define FALSE 0int main(){    int n;    printf("輸入一個大

判斷個數是否回數

判斷 n) back for format %s 個數 一個 lse 回數:數字正反都是它本身就叫回數 def is_back_num(num): if str(num) == str(n)[::-1]