掌握C语言判断素数(质数)相关内容
生活随笔
收集整理的這篇文章主要介紹了
掌握C语言判断素数(质数)相关内容
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
素數就是(質數),就是只能被1和自身整除的大于1自然數。
例一、已知m是一個大于1的正整數,編程序判斷m是否為素數。
編程思路:
1、要判斷m是否為素數,只需要檢測m是否能被2到m-1之間的整數整除。
2、判斷思路(1)
如果m不能被2整除;(例如m=7)
m也不能被3整除;
。。。。。
m也不能被m-1整除;
m是素數。
(需要同時滿足多個條件)
3、判斷思路(2)
若m能被2到m-1之間的某一個整數整除,則不是素數(列如m-9)
(只需要滿足一個條件)
4、
判斷m是否能夠被i整除,如果不能則i自增,然后再次判斷循環,如果當能被整除的時候聲明m不是素數,如果都不能被整除說明m是素質
5、
源代碼:
return語句直接退出程序
改進算法
當是素數的時候將i累加,直達i=m
當不是素數i不累加直接跳出循環,i不等于m
for循環改進算法
例二、計算并輸出high以內最大的10個素數的和,high的值由主函數傳輸給fun()函數
#include<conio.h> #include<stdio.h> #include<math.h> int fun(int high){int sum = 0,n = 0,j,yes;while((high>=2) && (n < 10)){yes = 1;//這里是判斷是否是素數 for(j=2;j<=high/2;j++){//當high余上j的時候等于0說明,有余數,不是素數 (只要有一次判斷其可以整除) if(high%j==0){yes=0;break;//中斷循環 }}//上面循環結束說明 high是素數 if(yes){//說明是質數, sum+=high;//將其累加到sum當中 n++;}high--;//從100依次遞減判斷,尋找10最大素質累加 }return sum; } void main(){printf("%d\n",fun(100)); }總結
以上是生活随笔為你收集整理的掌握C语言判断素数(质数)相关内容的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux进程互斥要点,linux进程之
- 下一篇: 微信小程序 body属性的问题