}
int num,sum; int factor,j; cin>>num;
cout<<\for(factor = 1;factor <= num;factor++) { }
cout< cout<<\ cout<<\char flag; cin>>flag; if((flag == 'y') || (flag == 'Y')) { } cout<<\for(j = 1;j <= 100;j++) { } cout< sum = 0; for(factor = 1;factor <= j;factor++) { } sum -= j; if(sum == j) cout< sum += factor; if((num % factor) == 0) cout< (9)编程验证一个数学定理,任意一个正偶数都能分解为两个素数之和,例如,6=3+3、8=3+5。 #include int n; int i,j; bool flag; cout<<\请输入任意整数(大于或等于6):\cin>>n; while (n%2!=0||n<6) { 素数 素数 就是素数 } } cout<<\请输入任意整数(大于或等于6):\cin>>n; for ( i=3;i<=n/2;i+=2) { } flag=false; for( j = 3; j * j <= i; j += 2) //内层循环 if( i % j == 0) break; if(j * j > i){ } continue; flag=true; //如果被整除,i不是素数 //停止内层循环 //如果循环到头了,i就是 if (!flag)//判断当前的i不是素数则执行下一次循环 flag=false; for (j=3; j * j <= (n-i);j += 2)//证明后一部分是素数 { } cout< break; //如果被整除,i不是//停止内层循环 //如果循环到头了,i if(j * j > (n - i) ){ } flag=true; if (flag) 第五单元 函数和编译预处理 根据题目要求,编写完整的程序,可所用已有函数,也可自行添加函数 (1)编写一个函数int digitSum(int x),返回形参x的十进制数的各位数之和,例如123的各位数为1+2+3=6。 #include int sum=0; while(x) { } sum+=x; x/=10; return sum; } void main() { int a; cin>>a; cout< (2)编写一个函数,返回三个整数中的最大数并输出。要求先编写函数实现两个数中求最大数。 #include int max_in_three(int a,int b,int c) { return(max_in_two(max_in_two(a,b),c)); } void main() { cout<<\ int a,b,c; cin>>a>>b>>c; cout<<\} (3)编写一个函数,计算组合数:C(m, r) = m! / (r!×(m-r)!),其中m,r为正整数,且m > r。分别求出C(4,2), C(6,4),C(8,7)的组合数。求阶乘和组合数分别用函数来实现。 #include unsigned factorial(unsigned n){ } //求组合数函数 unsigned fc(unsigned m,unsigned r) { } void main() return factorial(m)/(factorial(r)*factorial(m-r)); if(n == 1) else return n * factorial(n-1); //递归调用 return 1; return b; return a; { } (4)设计一个函数,将输入的十进制整数转换为相应的十六进制数并输出,要求输出8个十六进制数。 #include else cout<<(char)i+0; } void main() { int x; cout<<\请输入一个十进制的整数:\ cin>>x; cout<<\其转换成十六进制数为:\ z(x); cout< (5)设计一个程序,求出5~500之间的所有素数,要求每行输出5个素数。设计一个函数来判断一个整数是否为素数。 #include int count = 0; cout<<\本程序输出5-500之间所有素数:\ for(int i = 5; i <= 500; i++) { if(IsPrime(i)) { ch=(char)i+55; cout< cout<<\,2)=\cout<<\,4)=\cout<<\,7)=\ } } cout.setf(ios::left); //设置左对齐 cout< cout< bool IsPrime(int num) { if ((num==0)||(num == 1)) return false; for (int i = 2; i <=int(sqrt((double)num)); i++) { if (num % i == 0) return false; } return true; } (6)设计一个程序,对于输入的一个正整数x,分解质因数并按从小到大次序输出所有质因数。例如,12=2*2*3, 13=13, 14 = 2*7。 #include cout<<\请输入任意整数x:\ cin>>x; temp=x; int n=2; cout<<\ while(temp!=1) { } cout< if(!(temp%n)) { } else { } n++; cout<