C++判断是否为素数、求一个数的因数、质因数分解
判断一个数是否为素数
#include<iostream>
#include<vector>
#include<math.h>
#include<algorithm>/*判断是否为素数*/
bool isprime(int n)
{bool result;int k = (int)sqrt((double)n); // 只需要循环到 √n 即可int i = 0;for (i = 2; i <= k; i++){if (n%i == 0)break;}result = (i > k);return result;
}void test_isprime()
{std::cout << " isprime(2) = " << isprime(2) << '\n';std::cout << " isprime(10) = " << isprime(10) << '\n';std::cout << " isprime(17) = " << isprime(17) << '\n';
}
求一个数的因数
/* 寻找所有因数 包括1和其本身*/
std::vector<int> factorize(int n)
{std::vector<int> answer;int k = (int)sqrt((double)n);int i = 0;for (i = 1; i <= k; i++){if (!(n%i)){answer.push_back(i);answer.push_back(n / i);}}sort(answer.begin(), answer.end()); // 利用sort函数进行排序,再输出,这一步若不是必须可省略std::cout << " The factors of " << n << " are";return answer;
}/* 打印vector */
void print_vector(std::vector<int>& vec)
{for (auto it = vec.cbegin(); it != vec.cend(); ++it)std::cout << ' ' << *it;std::cout << '\n';
}void test_factorize()
{std::vector<int> vf;vf = factorize(2);print_vector(vf);vf = factorize(72);print_vector(vf);vf = factorize(196);print_vector(vf);
}
质因数分解
/* 质因数分解 */
std::vector<int> prime_factorize(int n)
{std::vector<int> answer;if (n != 2){int k = (int)sqrt((double)n); // 只需要循环到 √n 即可int i = 0, m = n;for (i = 2; i <= k; i++){while (m%i == 0){m = m / i;answer.push_back(i);}if (m == n)answer.push_back(n);}}elseanswer.push_back(n);std::cout << " The prime factorization of " << n << " are";return answer;
}void test_prime_factorize()
{std::vector<int> vf;vf = prime_factorize(2);print_vector(vf);vf = prime_factorize(72);print_vector(vf);vf = prime_factorize(196);print_vector(vf);
}int main()
{test_isprime();test_factorize();test_prime_factorize();return 0;
}
结果
C++判断是否为素数、求一个数的因数、质因数分解相关推荐
- 求一个数的因数和或者是求因数
题意:就是求 数的因数和 不包括它本身的因数 #include<iostream> #include<cstring> #include<algorithm> #i ...
- 求一个数的所有因数+质因数分解【数论】
先附上所有因数的求法: 我的做法:是今天误打误撞写出来的: http://exam.upc.edu.cn/problem.php?id=5062 然后,我上网找居然没有人写一个高效一点的,我这个做法其 ...
- c语言中求一个数的因数,【代码】求一个数的因数和、求优化、顺便也供新人参考算法...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include main() { int n,q,p,m,k=1,sum=0,s[99999]={2},t[99999];//n是输入 ...
- 如何求一个数的因数 c语言代码,【代码】求一个数的因数和、求优化、顺便也供新人参考算法...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include main() { int n,q,p,m,k=1,sum=0,s[99999]={2},t[99999];//n是输入 ...
- c语言 求一个数的因数,【代码】求一个数的因数和、求优化、顺便也供新人参考算法...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include main() { int n,q,p,m,k=1,sum=0,s[99999]={2},t[99999];//n是输入 ...
- c语言输入一个数求因数,【代码】求一个数的因数和、求优化、顺便也供新人参考算法...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include main() { int n,q,p,m,k=1,sum=0,s[99999]={2},t[99999];//n是输入 ...
- c语言因子优化算法,【代码】求一个数的因数和、求优化、顺便也供新人参考算法...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include main() { int n,q,p,m,k=1,sum=0,s[99999]={2},t[99999];//n是输入 ...
- c语言怎么求一个数的所有因数,【代码】求一个数的因数和、求优化、顺便也供新人参考算法...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include main() { int n,q,p,m,k=1,sum=0,s[99999]={2},t[99999];//n是输入 ...
- c语言求一个数因数个数,【代码】求一个数的因数和、求优化、顺便也供新人参考算法...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include main() { int n,q,p,m,k=1,sum=0,s[99999]={2},t[99999];//n是输入 ...
最新文章
- Client Dimensions , offsetHeight , scrollTop 属性详解
- linux设备驱动程序中的阻塞机制
- checkPathValidity 检查所有agent的corridor的m_path是否有效
- Linux java 生效不了,linux jdk 不生效怎么办
- centos apache 腾讯云ssl证书配置
- fft python 举例_Python FFT合成波形的实例
- Oracle 警告:Weblogic 服务器中含有多个可遭远程利用的严重漏洞
- ios开发笔记之 视频播放收藏
- 海康威视摄像头初始化设置(新相机的第一次配置相机恢复出厂设置)
- 桌面计算机图标变黑块,win7桌面图标变成有黑色方块怎么办?4个步骤轻松搞定...
- mysql闪退的解决方案
- oracle工程师 的职业,数据库工程师的职业规划
- 记第一次阿里数据研发工程师面试
- 董文永武汉大学计算机学院,武汉大学计算机学院博士生导师简介:董文永
- 【机器学习】(十)核支持向量机SVM:make_blobs方法,hstack() 函数
- 表达式运算(包含大整数加减乘)
- 【转载】男人选妻有什么实用主义标准?
- hostname -I(大写i)显示主机IP
- 初学jQuery Easy UI的总结
- 威尔士和英格兰同属英国,但为啥还要在世界杯上进行PK?