求大神!c或c++语言,输入一个数,判断它是否素数,是的话直接把原数输出来,不是的话分解质因数。小
答案:3 悬赏:10
解决时间 2021-02-28 21:56
- 提问者网友:若相守£卟弃
- 2021-02-28 17:43
求大神!c或c++语言,输入一个数,判断它是否素数,是的话直接把原数输出来,不是的话分解质因数。小程序。
最佳答案
- 二级知识专家网友:猎杀温柔
- 2021-02-28 18:30
① 代码:
#include <stdio.h>
int isPrime(long n);
void prime_factorial (int n);
int main(int argc, char const *argv[])
{
long num, l, count;
scanf("%d", &num);
if (isPrime(num)) printf("%d\n", num);
else prime_factorial(num);
return 0;
}
int isPrime(long n)
{
int i;
if (n < 2) return 0;
if (n == 2) return 1;
for (i = 2; i*i <= n;i++)
if (n % i == 0) return 0;
return 1;
}
void prime_factorial (int n)
{
for (int i = 2; i <= n; ++i)
while (n % i == 0)
{
printf ("%d ", i);
n /= i;
}
}② 运行:
1000
2 2 2 5 5 5
#include <stdio.h>
int isPrime(long n);
void prime_factorial (int n);
int main(int argc, char const *argv[])
{
long num, l, count;
scanf("%d", &num);
if (isPrime(num)) printf("%d\n", num);
else prime_factorial(num);
return 0;
}
int isPrime(long n)
{
int i;
if (n < 2) return 0;
if (n == 2) return 1;
for (i = 2; i*i <= n;i++)
if (n % i == 0) return 0;
return 1;
}
void prime_factorial (int n)
{
for (int i = 2; i <= n; ++i)
while (n % i == 0)
{
printf ("%d ", i);
n /= i;
}
}② 运行:
1000
2 2 2 5 5 5
全部回答
- 1楼网友:虚伪的现实
- 2021-02-28 20:08
看来,期末来了啊。
再看看别人怎么说的。
- 2楼网友:狠傷凤凰
- 2021-02-28 19:10
int prime(int n){
int i,isPrime=1;
for(i=2;i<n;i++){
if(n%i==0){
printf(i,%d);
n=n/i;
i--;
isPrime=0;}
}
if(n!=1)printf(n,%d);
if(isPrime)printf("是质数");
else printf("不是质数");
}
手机上打的,自己对齐下吧。原创,复杂度没有优化。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯