c语言编程题目 整数n=p*q,p和q为质数,且p≠q,我们称n为D-Prime,请写个程序判断一个数是不是D_Prime.输入第一行是一个整数K,表示样例的个数.以后每行是一个整数x,(1 ≤ x ≤ 100,000,000);输出每行输
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/24 08:51:38
c语言编程题目 整数n=p*q,p和q为质数,且p≠q,我们称n为D-Prime,请写个程序判断一个数是不是D_Prime.输入第一行是一个整数K,表示样例的个数.以后每行是一个整数x,(1 ≤ x ≤ 100,000,000);输出每行输
c语言编程题目 整数n=p*q,p和q为质数,且p≠q,我们称n为D-Prime,请写个程序判断一个数是不是D_Prime.
输入
第一行是一个整数K,表示样例的个数.以后每行是一个整数x,(1 ≤ x ≤ 100,000,000);
输出
每行输出一个样例的结果,如果是输出“Yes”,否则输出“No”.
样例输入
4 30 121 21 12
样例输出
No No Yes No
c语言编程题目 整数n=p*q,p和q为质数,且p≠q,我们称n为D-Prime,请写个程序判断一个数是不是D_Prime.输入第一行是一个整数K,表示样例的个数.以后每行是一个整数x,(1 ≤ x ≤ 100,000,000);输出每行输
// 刚写的,测试通过,如果有疑问,欢迎交流
#include<stdio.h>
#include<math.h>
bool is_prime(int tar){//判断是否为素数
\x09int i = 2;
\x09while(i <= sqrt(float(tar))){
\x09\x09if(tar % i == 0)
\x09\x09\x09return false;
\x09\x09i++;
\x09}
\x09return true;
}
int main(){
\x09int num;
\x09scanf("%d", &num);
\x09for(int i = 0; i < num; i++){
\x09\x09int cur_val;
\x09\x09scanf("%d", &cur_val);
\x09\x09bool flag = false; //标记
\x09\x09for(int j = 1; j<= sqrt(float(cur_val)); j++){
\x09\x09\x09if(cur_val % j ==0&&j!=cur_val/j&&is_prime(j) && is_prime(cur_val / j)){
\x09\x09\x09\x09printf("YES\n");
\x09\x09\x09\x09flag = true;
\x09\x09\x09\x09break;
\x09\x09\x09}
\x09\x09}
\x09\x09if(!flag)
\x09\x09\x09printf("NO\n");
\x09}
\x09return 0;
}