C語言求素數(shù)的幾種方式總結(jié)
一、判斷n是否能被2~n-1整除
輸入的數(shù)n不能被2-(n-1)整除,說明是素數(shù)
輸入的數(shù)n能被2-(n-1)整除,說明不是素數(shù)
注意:1不是素數(shù),素數(shù)是指大于1的自然數(shù),除了1和該數(shù)自身外,無法被其他自然數(shù)整除的數(shù)。
方法一
#include<stdio.h> int main() { int i, n; printf("請輸入一個數(shù):"); scanf("%d", &n); for (i = 2; i < n ; i++) { if (n%i == 0) break; } if (n <=1 ) printf("這不是素數(shù)\n"); else if (i < n) printf("這不是素數(shù)\n"); else printf("這是素數(shù)\n"); return 0; }
方法二
#include<stdio.h> int main() { int i, n; printf("請輸入一個數(shù):"); scanf("%d", &n); if(n<=1) printf("這不是素數(shù)\n"); else { for (i = 2; i < n ; i++) { if (n%i == 0) break; } if(i>=n) printf("這是素數(shù)\n"); else printf("這不是素數(shù)\n"); } return 0; }
二、判斷n是否能被2~√n間的整數(shù)整除
輸入的數(shù)n不能被2-√n整除,說明是素數(shù)
輸入的數(shù)n能被2-√n整除,說明不是素數(shù)
方法一
#include<stdio.h> #include<math.h> int main() { int n,i; double k; printf("請輸入一個數(shù):"); scanf("%d", &n); k = sqrt(n); for (i = 2; i <= k;i++) { if (n%i == 0) break; } if (n <=1 ) printf("這不是素數(shù)\n"); else if (i <= k) printf("這不是素數(shù)\n"); else printf("這是素數(shù)\n"); return 0; }
方法二
#include<stdio.h> #include<math.h> int main() { int n,i,k; printf("請輸入一個數(shù):"); scanf("%d", &n); if(n<=1) printf("這不是素數(shù)\n"); else { k=sqrt(n); for (i=2;i<=k;i++) { if (n%i==0) break; } if(i>=k+1) printf("這是素數(shù)\n"); else printf("這不是素數(shù)\n"); } return 0; }
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
C++ 將一個文件讀入數(shù)組再讀出數(shù)組的方法
今天小編就為大家分享一篇C++ 將一個文件讀入數(shù)組再讀出數(shù)組的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-07-07Visual Studio Code配置C/C++開發(fā)環(huán)境的教程圖解
這篇文章主要介紹了Visual Studio Code配置C/C++開發(fā)環(huán)境的教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-06-06C++?qsort函數(shù)排序與冒泡模擬實現(xiàn)流程詳解
qsort是一個庫函數(shù),基于快速排序算法實現(xiàn)的一個排序的函數(shù),下面這篇文章主要給大家介紹了關(guān)于C語言qsort()函數(shù)使用的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-10-10C語言完美實現(xiàn)動態(tài)數(shù)組代碼分享
本文給大家分享的是一則使用C語言實現(xiàn)動態(tài)數(shù)組的代碼,完美解決內(nèi)存溢出以及內(nèi)存回收問題,有需要的小伙伴可以參考下。2016-02-02