ACM札记二
0x1将一个非素数分解
由数学基本定理可知:任何一个大于1的非素数整数(即合数)都可以唯一分解成若干个素数的乘积。编写程序,从控制台读入一个合数(合数的大小不会超过int数据类型表示的范围),求这个合数可以分解成的素数。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
#include <iostream> using namespace std; int main() { int d; int i,j; cin>>d; i=2; while(d>=i) { j=0; while(d%i==0) { j++; d=d/i; } if(j!=0) cout<<i<<" "; i=i+1; } return 0; } |
0x2将一个数字的每一位存入一个数组
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
#include <iostream> #include <stdlib.h> #include <cstring> #define N 20 using namespace std; int main() { int num,a[N],len;//定义整数 char ch[N];//字符数组,把整数转成字符串求整数长度 cin>>num;//输入整数 itoa(num,ch,10);//整数转换成字符串 len=strlen(ch);//求出整数的长度 for (int i=len-1;i>=0;i--)//依次求出整数各位上数,赋值给数组 { a[i]=num%10; num/=10; } for (int i=0;i<len;i++) { cout<<a[i]<<" "; } return 0; } |