解题思路:
例子分析: 66%2==0 那么就输出2*
66/2=33 33%2!=0 而33%3==0 输出3空格
33/3=11 显然11%11==0 此时 11/11=1 输出11
由此可知n=2时 不满足66相除2后的数33,就自增n++ n=3 以此类推
注意事项:n不满足两个条件才自增1:不是素数,x不能被n整除
参考代码:
#include<iostream> using namespace std; int ss(int x){//素数判断方法 int i; if(x==1 || x==2 ) return x; for(i=2;i<x;i++){ if(x%i==0) return 0; } return x; } int main() { int x,n,k,b=0; while(scanf("%d",&x)!=EOF) { n=2; while(x!=1) { if( x%n==0 &&ss(n))//满足n是素数就相除 并且还要能与x整除 { x=x/n;//相除 printf("%d ",n); b++; }//不满足自增1 else n++; } printf("\n%d",b); } return 0; }
0.0分
2 人评分
C二级辅导-分段函数 (C语言代码)浏览:912 |
点我有惊喜!你懂得!浏览:1564 |
点我有惊喜!你懂得!浏览:1462 |
C语言程序设计教程(第三版)课后习题10.2 (C语言代码)浏览:1152 |
C语言程序设计教程(第三版)课后习题7.3 (C语言代码)浏览:643 |
十->二进制转换 (C语言代码)浏览:1330 |
回文串 (C语言代码)浏览:3095 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:723 |
2005年春浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:637 |
C语言程序设计教程(第三版)课后习题5.8 (C语言代码)浏览:683 |