判断一个数是否为素数

#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++判断是否为素数、求一个数的因数、质因数分解相关推荐

  1. 求一个数的因数和或者是求因数

    题意:就是求 数的因数和 不包括它本身的因数 #include<iostream> #include<cstring> #include<algorithm> #i ...

  2. 求一个数的所有因数+质因数分解【数论】

    先附上所有因数的求法: 我的做法:是今天误打误撞写出来的: http://exam.upc.edu.cn/problem.php?id=5062 然后,我上网找居然没有人写一个高效一点的,我这个做法其 ...

  3. c语言中求一个数的因数,【代码】求一个数的因数和、求优化、顺便也供新人参考算法...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include main() { int n,q,p,m,k=1,sum=0,s[99999]={2},t[99999];//n是输入 ...

  4. 如何求一个数的因数 c语言代码,【代码】求一个数的因数和、求优化、顺便也供新人参考算法...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include main() { int n,q,p,m,k=1,sum=0,s[99999]={2},t[99999];//n是输入 ...

  5. c语言 求一个数的因数,【代码】求一个数的因数和、求优化、顺便也供新人参考算法...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include main() { int n,q,p,m,k=1,sum=0,s[99999]={2},t[99999];//n是输入 ...

  6. c语言输入一个数求因数,【代码】求一个数的因数和、求优化、顺便也供新人参考算法...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include main() { int n,q,p,m,k=1,sum=0,s[99999]={2},t[99999];//n是输入 ...

  7. c语言因子优化算法,【代码】求一个数的因数和、求优化、顺便也供新人参考算法...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include main() { int n,q,p,m,k=1,sum=0,s[99999]={2},t[99999];//n是输入 ...

  8. c语言怎么求一个数的所有因数,【代码】求一个数的因数和、求优化、顺便也供新人参考算法...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include main() { int n,q,p,m,k=1,sum=0,s[99999]={2},t[99999];//n是输入 ...

  9. c语言求一个数因数个数,【代码】求一个数的因数和、求优化、顺便也供新人参考算法...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include main() { int n,q,p,m,k=1,sum=0,s[99999]={2},t[99999];//n是输入 ...

最新文章

  1. Client Dimensions , offsetHeight , scrollTop 属性详解
  2. linux设备驱动程序中的阻塞机制
  3. checkPathValidity 检查所有agent的corridor的m_path是否有效
  4. Linux java 生效不了,linux jdk 不生效怎么办
  5. centos apache 腾讯云ssl证书配置
  6. fft python 举例_Python FFT合成波形的实例
  7. Oracle 警告:Weblogic 服务器中含有多个可遭远程利用的严重漏洞
  8. ios开发笔记之 视频播放收藏
  9. 海康威视摄像头初始化设置(新相机的第一次配置相机恢复出厂设置)
  10. 桌面计算机图标变黑块,win7桌面图标变成有黑色方块怎么办?4个步骤轻松搞定...
  11. mysql闪退的解决方案
  12. oracle工程师 的职业,数据库工程师的职业规划
  13. 记第一次阿里数据研发工程师面试
  14. 董文永武汉大学计算机学院,武汉大学计算机学院博士生导师简介:董文永
  15. 【机器学习】(十)核支持向量机SVM:make_blobs方法,hstack() 函数
  16. 表达式运算(包含大整数加减乘)
  17. 【转载】男人选妻有什么实用主义标准?
  18. hostname -I(大写i)显示主机IP
  19. 初学jQuery Easy UI的总结
  20. 威尔士和英格兰同属英国,但为啥还要在世界杯上进行PK?

热门文章

  1. Grails动态下拉菜单
  2. Java中的责任链模式
  3. 具有Tron效果的JavaFX 2 Form
  4. Java 7 –反编译项目硬币
  5. 首先记录异常的根本原因
  6. MySQL查看数据库系统正在运行的进程
  7. HH SaaS电商系统的入库功能模块设计
  8. JSP动作元素/活动元素
  9. Mybatis动态代理模式实现CRUD
  10. socket模拟http的登陆_Python网络爬虫之模拟登陆 !