欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

判断素数的方法

程序员文章站 2022-07-08 19:58:01
素数 不知道写些什么,顺便熟悉下markdown的语法,就写个判断素数的算法吧,~~太菜了,见谅~~ 最朴素的做法 cpp include using namespace std; int main() { int x; int flag = 0; cin x; for(int i=2;i usin ......

素数

不知道写些什么,顺便熟悉下markdown的语法,就写个判断素数的算法吧,太菜了,见谅

最朴素的做法

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int x;
    int flag = 0;
    cin >> x;
    for(int i=2;i<x;i++)
        if (x%i == 0)
        {
            flag = 1;
            break;
        }
    if (flag == 1)
        cout << "0";//不是素数
    else
        cout << "1";
}





这是最朴素的算法了,正常人都会做

那么怎么优化呢,仔细思考会发现根本不用遍历到本数字,好像到$ \frac 1 2 $就行了,那么代码就是

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int x;
    int flag = 0;
    cin >> x;
    for(int i=2;i<=x/2;i++)
        if (x%i == 0)
        {
            flag = 1;
            break;
        }
    if (flag == 1)
        cout << "0";//不是素数
    else
        cout << "1";
}

貌似还可以优化,仔细算算好像只需要到 $ \sqrt x $ 就行惹,所以循环就里面 $ \frac 1 2 $ 改成 $ \sqrt x $ 就行了,很简单

暂时先记这么多惹,熟悉熟悉..