素数
不知道写些什么,顺便熟悉下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 $ 就行了,很简单
暂时先记这么多惹,熟悉熟悉..