#C++初学记录(素数判断2)

素数判断2 比较简单的算法,没有技术含量
对于算法

素数判断1中,我使用暴力代码判断素数,这无疑是花费时间最长,编写难度最易的代码,在学习的过程中,我发现变成和数学紧密相连,就比如这个素数判断的题目,运用数学方法可以使计算机更快速的跑完程序。
运行的代码

#include<iostream>
#include<math.h>
using namespace std;
int main()
{
    int n;
    cin>>n;
    int b=0,m,count;
    for(int i=0;i<n;i++){
        cin>>m;
        count=1;
    for(int i=2;i<=sqrt(m);i++)
    {
        if(m%2==0) 
        {
            count=0;
            break;
        }
        if(m*m%i==0){ 
        count=0;
        break;} 
    }
    if(count==1&&m!=1)
    b++;
    }  
    cout<<b;
    return 0; 

}
    

思考过程

素数是因子为1和本身的数, 如果数m不是素数,则还有其他因子,其中的因子,假如为a,b.其中必有一个大于sqrt(m) ,一个小于 sqrt(m)。也就是说,判断素数只需判断sqrt

猜你喜欢

转载自www.cnblogs.com/xiaofengqaq/p/10560499.html