问题出在哪?
#include <stdio.h>int sushu(int n);
int main()
{
//int n,i;
sushu(45);
int n,i;
int isprime;
printf("%d=",n);
if( isprime == 1)
{
printf("%d",n);
}
else
{
for(i=2;i<=n;i++)
{
while(n!=i){ //公约数最大是数字本身 控制for循环次数
if(n%i == 0){
printf("%dx",i);
n /=i; //控制while循环次数
}
else{
break;
}
}
}
}
printf("%d\n",n);
return 0;
}
int sushu(int n)
{
// int n;
scanf("%d",&n);
int isprime = 1;//素数的标志
int i;
for(i=2;i<=n-1;i++)
{
if(n%i == 0)
{
isprime = 0;
}
}
if(isprime == 1)
{
printf("isprime=%d\n",isprime);
}
else
{
printf("isprime=%d\n",isprime);
}
return 0;
}
#include <stdio.h>
void sushu(int n);
int main()
{
sushu(45);
return 0;
}
void sushu(int n)
{
int isprime = 1;
int i;
for(i = 2; i <= n-1; i++)
{
if(n%i == 0)
{
isprime = 0;
}
}
if(isprime == 1)
{
printf("%d is a prime number.\n",n);
}
else
{
printf("%d is not a prime number\n",n);
}
}
如果变成函数来,代码不需要重复写。void sushu(int n) 是对输入值判断,我帮你封装了,直接在内部打印判断结果,所以用 void 类型,代表此函数不需要有任何的返回值。 claws0n 发表于 2018-9-2 18:30
如果变成函数来,代码不需要重复写。void sushu(int n) 是对输入值判断,我帮你封装了,直接在内部打印判 ...
我是想在判断素数的基础上求出质因数 例如: 输入24 不是素数输出24=2*2*2*3 是素数输出本身。
就是在新创的函数中输入45 在main函数里不用scanf再输入45 就可以计算出想要的结果
这样可行吗?{:10_256:} 大鹏家 发表于 2018-9-2 19:47
我是想在判断素数的基础上求出质因数 例如: 输入24 不是素数输出24=2*2*2*3 是素数输出本身。
就是在新 ...
{:10_269:}
#include <stdio.h>
void sushu(int n);
void primefactor(int n);
int main()
{
sushu(45);
return 0;
}
void sushu(int n)
{
int isprime = 1;//ËØêyμıêÖ¾
int i;
for(i = 2; i <= n-1; i++)
{
if(n%i == 0)
{
isprime = 0;
break;
}
}
if(isprime == 1)
{
printf("%d is a prime number.\n",n);
}
else
{
printf("%d is not a prime number\n",n);
primefactor(n);
}
}
void primefactor(int n)
{
int a = n;
int b = {0};
int j = 0, k;
while (a != 1)
{
for (int i = 2; i < n; i++)
{
if (a % i == 0)
{
a /= i;
b = i;
break;
}
}
}
printf("%d = ", n);
for (k = 0; k < j-1; k++)
{
printf("%d * ", b);
}
printf("%d\n", b);
}
claws0n 发表于 2018-9-2 21:03
嗯 好的 下次注意 感谢!{:10_298:} 大鹏家 发表于 2018-9-3 20:53
嗯 好的 下次注意 感谢!
b 是缓冲区,最小数可支持到 1024,如果不够就把数组扩大。
记得采纳最佳答案哦{:10_254:}
页:
[1]