指针原来是套娃的


私信TA

用户名:uq_92467646842

访问量:43630

签 名:

数学改变科学,科学改变世界

等  级
排  名 10
经  验 25203
参赛次数 49
文章发表 128
年  龄 0
在职情况 学生
学  校
专  业 物联网工程

  自我简介:

QQ:2830671713

解题思路:

使用的是算数基本定理,一个数只能被唯一分解成多个质数的乘积,这样不需要构造质数表了。

最好情况下在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 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区