解题思路: 先定义一个判断n是否是素数的函数,在求质因子时,尽量少判断,从3开始,只判断奇数,当然要注意最前面是否输出2,即偶数就输出2,否则肯定不输出。
参考代码:
#include<stdio.h> #include <math.h> int prime(int n) { int i; int m=sqrt(n); for(i=2;i<=m;i++) if(n%i==0) return 0; return 1; } int main() { int n,i; scanf("%d",&n); if(n%2==0) printf("2 "); for(i=3;i<=n/2;i=i+2) if(n%i==0 && prime(i)) printf("%d ",i); return 0; }
0.0分
0 人评分
gets函数前有scanf读取时候,会读取缓存回车导致出错!!!浏览:1148 |
C语言训练-排序问题<1> (C语言代码)浏览:636 |
C语言训练-大、小写问题 (C语言代码)浏览:792 |
WU-蓝桥杯算法提高VIP-勾股数 (C++代码)浏览:1685 |
三角形 (C++代码)递推浏览:825 |
The 3n + 1 problem (C语言代码)浏览:603 |
C语言程序设计教程(第三版)课后习题9.3 (C语言代码)浏览:2121 |
C语言程序设计教程(第三版)课后习题5.6 (C语言代码)浏览:913 |
1157题解浏览:769 |
回文数字 (C语言代码)浏览:2539 |