c语言编程题目 整数n=p*q,p和q为质数,且p≠q,我们称n为D-Prime,请写个程序判断一个数是不是D_Prim
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/13 17:01:27
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
输入
第一行是一个整数K,表示样例的个数.以后每行是一个整数x,(1 ≤ x ≤ 100,000,000);
输出
每行输出一个样例的结果,如果是输出“Yes”,否则输出“No”.
样例输入
4 30 121 21 12
样例输出
No No Yes No
// 刚写的,测试通过,如果有疑问,欢迎交流
#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;
}
再问: 新手啊!看的不是太懂,简单点吧!但注意优化,否则会超时哦。
再答: //这份code超时了么? 如果超时的话,我再想办法优化
#include<stdio.h>
#include<math.h>
bool is_prime(int tar){//判断是否为素数
int i = 2;
while(i <= sqrt(float(tar))){//这里做了优化了
if(tar % i == 0)
return false;
i++;
}
return true;
}
int main(){
int num;
scanf("%d", &num);
for(int i = 0; i < num; i++){
int cur_val;
scanf("%d", &cur_val);
bool flag = false; //标记
for(int j = 1; j<= sqrt(float(cur_val)); j++){//这里也有优化
if(cur_val % j ==0&&j!=cur_val/j&&is_prime(j) && is_prime(cur_val / j)){
//这里的if条件就是判断当前的元素,是否满足条件
//1.从左往右,依次判断cur_val是否能整除j
//2.如果1.满足,则看j和cur_val/j是否相等,相等,不满足题意
//3.如果2满足,则判断j是否是质数
//4.如果3满足,则判断cur_val/j是否是质数
//如果4满足则说明这个数,满足题意了。
printf("YES\n");
flag = true;
break;
}
}
if(!flag)
printf("NO\n");
}
return 0;
}
再问: 不好意思啊!我的编程软件编译不了你的程序,我用的是code blocks因为是新手嘛!所以你能不能用我们当前写过的c语言表示下,我们学了指针,函数和数组。
再答: //刚修改了你再试试,看你的编译器能否编译
#include<stdio.h>
#include<math.h>
int is_prime(int tar){//判断是否为素数
int i = 2;
while(i <= sqrt((float)tar)){//这里做了优化了
if(tar % i == 0)
return 0;
i++;
}
return 1;
}
int main(){
int num, i, j;
scanf("%d", &num);
for(i = 0; i < num; i++){
int cur_val;
scanf("%d", &cur_val);
int flag = 0; //标记
for(j = 1; j<= sqrt((float)cur_val); j++){//这里也有优化
if(cur_val % j ==0&&j!=cur_val/j&&is_prime(j) && is_prime(cur_val / j)){
//这里的if条件就是判断当前的元素,是否满足条件
//1.从左往右,依次判断cur_val是否能整除j
//2.如果1.满足,则看j和cur_val/j是否相等,相等,不满足题意
//3.如果2满足,则判断j是否是质数
//4.如果3满足,则判断cur_val/j是否是质数
//如果4满足则说明这个数,满足题意了。
printf("YES\n");
flag = 1;
break;
}
}
if(!flag)
printf("NO\n");
}
return 0;
}
#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;
}
再问: 新手啊!看的不是太懂,简单点吧!但注意优化,否则会超时哦。
再答: //这份code超时了么? 如果超时的话,我再想办法优化
#include<stdio.h>
#include<math.h>
bool is_prime(int tar){//判断是否为素数
int i = 2;
while(i <= sqrt(float(tar))){//这里做了优化了
if(tar % i == 0)
return false;
i++;
}
return true;
}
int main(){
int num;
scanf("%d", &num);
for(int i = 0; i < num; i++){
int cur_val;
scanf("%d", &cur_val);
bool flag = false; //标记
for(int j = 1; j<= sqrt(float(cur_val)); j++){//这里也有优化
if(cur_val % j ==0&&j!=cur_val/j&&is_prime(j) && is_prime(cur_val / j)){
//这里的if条件就是判断当前的元素,是否满足条件
//1.从左往右,依次判断cur_val是否能整除j
//2.如果1.满足,则看j和cur_val/j是否相等,相等,不满足题意
//3.如果2满足,则判断j是否是质数
//4.如果3满足,则判断cur_val/j是否是质数
//如果4满足则说明这个数,满足题意了。
printf("YES\n");
flag = true;
break;
}
}
if(!flag)
printf("NO\n");
}
return 0;
}
再问: 不好意思啊!我的编程软件编译不了你的程序,我用的是code blocks因为是新手嘛!所以你能不能用我们当前写过的c语言表示下,我们学了指针,函数和数组。
再答: //刚修改了你再试试,看你的编译器能否编译
#include<stdio.h>
#include<math.h>
int is_prime(int tar){//判断是否为素数
int i = 2;
while(i <= sqrt((float)tar)){//这里做了优化了
if(tar % i == 0)
return 0;
i++;
}
return 1;
}
int main(){
int num, i, j;
scanf("%d", &num);
for(i = 0; i < num; i++){
int cur_val;
scanf("%d", &cur_val);
int flag = 0; //标记
for(j = 1; j<= sqrt((float)cur_val); j++){//这里也有优化
if(cur_val % j ==0&&j!=cur_val/j&&is_prime(j) && is_prime(cur_val / j)){
//这里的if条件就是判断当前的元素,是否满足条件
//1.从左往右,依次判断cur_val是否能整除j
//2.如果1.满足,则看j和cur_val/j是否相等,相等,不满足题意
//3.如果2满足,则判断j是否是质数
//4.如果3满足,则判断cur_val/j是否是质数
//如果4满足则说明这个数,满足题意了。
printf("YES\n");
flag = 1;
break;
}
}
if(!flag)
printf("NO\n");
}
return 0;
}
c语言编程题目 整数n=p*q,p和q为质数,且p≠q,我们称n为D-Prime,请写个程序判断一个数是不是D_Prim
已知等差数列an的前n项和为sn,且sp=q,sq=p,(p、q∈N*,p≠q)
等差数列{an}的前n项和为Sn,且满足Sp=Sq(p,q属于正整数,p≠q),则Sp+q=?
如果命题“p或q”和命题“p且q”都为真,那么则有(A)p真q假(B)p假q真(c)p真q假(D)p假q真
在等差数列中,Sn为{an}的前n项和,q、p∈N*且p≠q.(1)若Ap=q,Aq=p,求证Ap+q=0 (2)若Sp
等差数列{an}的前n项和为Sn,且满足Sp=Sq(p≠q),Sp+q=
2.若p.q为质数,且5p+3q=91,则p=__.q=__
等差数列{an}的前n项和为Sn,已知Sp=q/p,Sq=p/q,(p≠q),则S(p+q)(用P、Q表示)
等差数列{an}的前n项和为Sn,已知Sp=q/p,Sq=p/q,p≠q,p,q∈N﹡,则Sp+q=?
已知pq为质数,且存在正整数mn使p=m+n,q=mn,求p与q的值.
x的0次方是幂函数吗a=p/q,且p/q为既约分数(即p、q互质),q和p都是整数关于a的定义不就无法满足吗?
全体有理数集合记作Q,Q={p/q|p为整数,q为非零自然数,且p与q互质}这个定义不大明白?