输入一个数,输出其因式分解表示式。(例60=1*2*2*3*5)
答案:3 悬赏:0
解决时间 2021-02-10 09:40
- 提问者网友:风华是一指流沙
- 2021-02-09 23:41
输入一个数,输出其因式分解表示式。(例60=1*2*2*3*5)
最佳答案
- 二级知识专家网友:飘零作归宿
- 2021-02-09 23:58
#include<stdio.h>
#include<math.h>
int prime(int n)
{
int i,t;
t=(int)sqrt(n);
for(i=2;i<=t;i++)
{
if(n%i==0)
return 0;
else
continue;
}
if(i==t+1)
return 1;
return 0;
}
int main()
{
int i,n,flag;
scanf("%d",&n);
flag=prime(n);
printf("1*");
if(flag)
printf("%d\n",n);
else
{
for(i=2;;i++)
{
if(n%i==0)
{
flag=prime(i);
if(flag)
{
n=n/i;
if(n==1)
{
printf("%d\n",i);
break;
}
else
{
printf("%d*",i);
i--;
continue;
}
}
}
}
}
return 0;
}
#include<math.h>
int prime(int n)
{
int i,t;
t=(int)sqrt(n);
for(i=2;i<=t;i++)
{
if(n%i==0)
return 0;
else
continue;
}
if(i==t+1)
return 1;
return 0;
}
int main()
{
int i,n,flag;
scanf("%d",&n);
flag=prime(n);
printf("1*");
if(flag)
printf("%d\n",n);
else
{
for(i=2;;i++)
{
if(n%i==0)
{
flag=prime(i);
if(flag)
{
n=n/i;
if(n==1)
{
printf("%d\n",i);
break;
}
else
{
printf("%d*",i);
i--;
continue;
}
}
}
}
}
return 0;
}
全部回答
- 1楼网友:心痛成瘾
- 2021-02-10 01:45
cin>>num;
cout<<num<<"=1";
for(count=1;count<num;count++)
{
if(num%count==0 && count!=1)
{
cout<<'*'<<count;
num=num/count;
}
}
- 2楼网友:何以畏孤独
- 2021-02-10 00:30
public class test2 {
public static void main(string[] args) {
test2 t = new test2();
scanner in=new scanner(system.in);
system.out.println("输入一个数:");
int number=in.nextint();
system.out.println(t.a(number));
}
public string a(int mun)// 带一个需要分解的整数
{
string s = mun + "=";// 输出的字符串
int smun = mun;
for (int i = 2; i <= mun; i++)// 从2开始循环。
{
if (smun % i == 0)// 判断是否整除
{
smun = smun / i;// 整除就将除后的值重新赋值
if (smun == 1)// 如果赋值后的变量等于1,说明整除完毕。
{
if (mun / i == 1)// 如果原先输入的整数也能被这个数除完,说明只有一个分因式
{
s += i + "*" + 1;
break;
}
s += i;
break;
}
s += i + "*";
i--;// 数能被整除,却没有除完,从该数重新循环
}
}
return s;// 返回所得字符串。
}
}引用30……bai方法!
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯