根据需求,使用 C/C++ 执行判断一个数是否为素数,如果不是素数则计算得出它的素因子。
![图片[1]-【C/C++】判断并计算一个数的素因子 - 梦闯天下](https://montrong-1300089193.cos.ap-beijing.myqcloud.com/montrong/2024/05/20240507094949840.png?imageMogr2/format/webp/interlace/1/quality/100)
#include <stdio.h>
#include <math.h>
bool isFst = true, isPrime = true;
bool is_prime(long long int num) {
if (num <= 1 || num >= pow(10,9)) {
return false;
// 若数值超过规定或小于等于1,则直接返回非质数。
} else if (!(num % 2) && num != 2) {
return false;
} else {
for (int i = 2; i <= sqrt(num); i++) {
if (num % i == 0) {
return false;
}
}
}
//判断如果该数可以被整除,返回非质数。
return true;
//默认返回是质数。
}
int main() {
int T = 0;
scanf("%d", &T);
while (T--) {
long long int x = 0;
scanf("%lld", &x);
isPrime = is_prime(x);
if (isPrime) {
printf("isprime\n");
} else {
printf("noprime\n");
}
// 素数判断
if (x <= 1 || isPrime) {
printf("%lld", x);
} else {
for (long long int i = 2; i <= x; i++) {
if (x % i == 0 && is_prime(i)) {
if (!isFst) {
printf(" ");
}
printf("%lld", i);
isFst = false;
}
}
}
// 素因子输出
printf("\n");
isFst = true;
}
return 0;
}
© 版权声明
如无特殊声明,本站全部内容版权归蝶梦社区所有;未经允许,请勿转载。
若本站存在用户上传的侵权内容,请联系 Email,我们会处理相关内容和用户。
若本站存在用户上传的侵权内容,请联系 Email,我们会处理相关内容和用户。
THE END
请登录后查看评论内容