解题思路:
使用的是算数基本定理,一个数只能被唯一分解成多个质数的乘积,这样不需要构造质数表了。
最好情况下在log n的时间复杂度,用k表示分解出了几个质数,如果k!=2的话就打印no
参考代码:
#include <stdio.h> #include <math.h> int main () { int i,k=0; int n,z=0; scanf("%d",&z); while(z--){ scanf("%d",&n); for(i=2;i<=n;i++){ while(n%i==0){ n/=i; k++; } } if(k!=2){ printf("No\n"); }else{ printf("Yes\n"); } k=0; } return 0; }
0.0分
157 人评分
C语言程序设计教程(第三版)课后习题6.9 (C语言代码)浏览:641 |
DNA (C语言描述,蓝桥杯)浏览:1555 |
1009题解浏览:752 |
小九九 (C语言描述,不看要求真坑爹)浏览:985 |
永远的丰碑 (C语言代码)浏览:525 |
C语言程序设计教程(第三版)课后习题7.5 (C语言代码)浏览:555 |
买不到的数目 (C语言代码)浏览:3094 |
快速排序算法1浏览:884 |
C语言程序设计教程(第三版)课后习题5.5 (C语言代码)浏览:446 |
C语言程序设计教程(第三版)课后习题4.9 (Java代码)浏览:613 |