ZZULIOJ【1071】分解质因子【数学】&&【函数】
来源:互联网 发布:网络诗歌 编辑:程序博客网 时间:2024/06/07 05:36
1071: 分解质因子
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 7640 Solved: 4170
SubmitStatusWeb Board
Description
将一个正整数分解质因数,例如,输入90,输出2 3 3 5。
Input
输入一个正整数n(2<=n<=2000)。
Output
从小到大输出n的所有质因子,每两个数之间空一格。
Sample Input
20
Sample Output
2 2 5
注意:输出时两个数字之间有一个空格,最后一个数字后面没有空格。
解析:
博主拿到这道题的时候首先想到的就是构造函数。质因子需要满足质数和因子,我们可以构造一个函数判断因子是否为质数。
大致思路就是这样。可是博主遇到了一个问题,如果单纯的用for来找寻数的因子,例如20,找到第一个质因子2之后,i++变成3,
所以第二个2就找不出来,输出结果就是2 5.所以每找到一个质因子我们都需要从1开始重新判断。
程序如下:
注意:输出时两个数字之间有一个空格,最后一个数字后面没有空格。
解析:
博主拿到这道题的时候首先想到的就是构造函数。质因子需要满足质数和因子,我们可以构造一个函数判断因子是否为质数。
大致思路就是这样。可是博主遇到了一个问题,如果单纯的用for来找寻数的因子,例如20,找到第一个质因子2之后,i++变成3,
所以第二个2就找不出来,输出结果就是2 5.所以每找到一个质因子我们都需要从1开始重新判断。
程序如下:
#include<cstdio>#include<cmath>#include<algorithm>using namespace std;bool cmp(int a,int b){return a<=b;}int prime(int n){int flag=1,i;if(n==1) flag=0; for(i=2;i<n;i++) if(n%i==0) flag=0;if(flag==1) return 1;else return 0;}int main(){int n;scanf("%d",&n);int i,j=0,a[10003];for(i=2;i<=n;i++){if(n%i==0&&prime(i)==1){a[j++]=i; n=n/i; i=0;} }sort(a,a+j,cmp);for(i=0;i<j;i++) printf("%d%c",a[i],i==j-1?'\n':' '); return 0;}
阅读全文
0 0
- ZZULIOJ【1071】分解质因子【数学】&&【函数】
- 1071: 分解质因子
- POJ1401 数学N!因子分解
- POJ 3421X-factor Chains【分解质因子+组合数学】
- POJ3421 X-factor Chains【分解质因子+组合数学】
- ZZULIOJ【1053】正弦函数【数学】
- zzuli OJ 1071: 分解质因子
- 分解质因子
- 1365-质因子分解
- 【分解质因子】零
- 质因子分解
- 质因子分解
- 分解质因子问题
- 质因子分解
- 正整数分解质因子
- 分解质因子
- 质因子分解
- 质因子分解
- HDU-1856-More is better
- 并行模式与算法
- Andrew Ng机器学习课程笔记–week1(机器学习简介&线性回归模型)
- I
- linux tail 过滤日志文件中的关键字
- ZZULIOJ【1071】分解质因子【数学】&&【函数】
- BZOJ 1124 [POI2008] 枪战Maf 乱搞。。
- postgresql 定时vacuum脚本
- 考虑交易成本的三角套利
- mysql中You can't specify target table for update in FROM clause错误
- matlab如何提取程序所依赖的所有自定义函数文件到一个文件夹中去
- 如何爬取天猫评论数据
- iptables用法简介
- J