算术基本定理。。。
来源:互联网 发布:知乎 删除提问 编辑:程序博客网 时间:2024/04/28 00:44
每个整数n>=2可唯一分解成素数的乘积;(这是我寒假闲的蛋疼给自己出的题目,并不严密)
现在输入一个n(n<=10000),要你分解成素数的乘积,结果由小到大排列。
输入:
180
110
250
输出:
2 2 3 3 5
2 5 11
2 5 5 5
代码:
#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;#define N 10000int p[N+10];void screening(int p[]){memset(p,0,sizeof(p));p[1]=-1;for(int i=2;i*i<=N;i++){if(i==4)continue;for(int j=2;j*i<=N;j++){p[i*j]=-1;}}}void func(int n){int a[N],x=0;if(p[n]==0)printf("%d",n);else{for(int i=2,j=0;n;i++){if(n%i==0&&p[i]==0){a[j]=i;n/=i;j++;i--;x++;if(p[n]==0){a[j]=n;x++;break;}}}sort(a,a+x);for(int k=0;a[k]>0;k++){if(k==0)printf("%d",a[k]);elseprintf(" %d",a[k]);}}putchar(10);}int main(){int n;screening(p);//freopen("Data.txt","r",stdin);//freopen("Out.txt","w",stdout);while(scanf("%d",&n)!=EOF){if(n>1&&n<=10000)func(n);elseprintf("Wrong!\n");}return 0;}
并没有什么高大上的算法。。。
0 0
- 算术基本定理。。。
- 算术基本定理
- LightOJ1236->算术基本定理
- 算术基本定理
- 算术基本定理
- 算术基本定理
- lightoj 1341 算术基本定理
- 关于质数:算术基本定理
- 算术基本定理(唯一分解定理)
- 唯一分解定理(算术基本定理)
- 【定理】算术基本定理(唯一分解定理)
- 分解质因数(算术基本定理)
- hdu 4196 Remoteland 基本算术定理
- NEFU119 组合素数【算术基本定理】
- poj 2992 Divisors 筛法 算术基本定理
- uva 10375算术基本定理(约分)
- 初等数论之算术基本定理
- 【基本算术定理 && 质因数分解】LightOJ
- 默染江山——oc之Foundation
- dataguard创建物理备库几个关键参数详解
- Web前端:11个让你代码整洁的原则
- AFNetworking2.5使用
- Google Volley使用笔记,下载源码编译打包
- 算术基本定理。。。
- 有关dataguard错误ORA-16057
- 初学spring mvc
- rdp协议解读
- RSA算法原理(一)
- Oracle 数据库服务器(database server)、数据库(database)、数据库实例(database instance|instance)
- Android 应用程序大小限制上调至 4GB
- ardupilot example
- mybatis源码解读(2)