判断素数的方法
程序员文章站
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 $ 就行了,很简单
暂时先记这么多惹,熟悉熟悉..