c++因数分解(次方用^表示)
答案:4 悬赏:20 手机版
解决时间 2021-11-11 18:34
- 提问者网友:且恨且铭记
- 2021-11-10 23:54
c++因数分解(次方用^表示)
最佳答案
- 五星知识达人网友:旧脸谱
- 2021-11-11 00:09
#include
#include
void wuliao(int count, std::vector & haoxiangshuijiao) {
if(count <3)
{
return;
}
for(int i=2 ;i {
if( count %i ==0)
{
haoxiangshuijiao.push_back(i);
wuliao(count/i ,haoxiangshuijiao);
return;
}
}
haoxiangshuijiao.push_back(count);
return;
}
int main()
{
std::vector chitaiduole;
int buxihuanni;
std::cin>>buxihuanni ;
wuliao(buxihuanni ,chitaiduole);
int chibaochengle=0;
int woainiya=0;
for(std::vector::iterator dantengme = chitaiduole.begin() ; dantengme!=chitaiduole.end() ; ++dantengme)
{
if (dantengme ==chitaiduole.begin() )
{
chibaochengle=*dantengme;
woainiya=1;
continue;
}
if( *dantengme ==chibaochengle)
{
++woainiya;
if(dantengme ==chitaiduole.end()-1)
{
std::cout< }
}
if ( *dantengme !=chibaochengle )
{
if(woainiya==1)
{
std::cout< chibaochengle=*dantengme;
woainiya=1;
}
if (woainiya>1)
{
std::cout< chibaochengle=*dantengme;
woainiya=1;
}
if(dantengme==chitaiduole.end()-1)
{
std::cout<<*dantengme< }
}
}
}
采用递归的方式 ,变量名故意混淆了~自己改下就可以用~
#include
void wuliao(int count, std::vector
if(count <3)
{
return;
}
for(int i=2 ;i
if( count %i ==0)
{
haoxiangshuijiao.push_back(i);
wuliao(count/i ,haoxiangshuijiao);
return;
}
}
haoxiangshuijiao.push_back(count);
return;
}
int main()
{
std::vector
int buxihuanni;
std::cin>>buxihuanni ;
wuliao(buxihuanni ,chitaiduole);
int chibaochengle=0;
int woainiya=0;
for(std::vector
{
if (dantengme ==chitaiduole.begin() )
{
chibaochengle=*dantengme;
woainiya=1;
continue;
}
if( *dantengme ==chibaochengle)
{
++woainiya;
if(dantengme ==chitaiduole.end()-1)
{
std::cout<
}
if ( *dantengme !=chibaochengle )
{
if(woainiya==1)
{
std::cout<
woainiya=1;
}
if (woainiya>1)
{
std::cout<
woainiya=1;
}
if(dantengme==chitaiduole.end()-1)
{
std::cout<<*dantengme<
}
}
}
采用递归的方式 ,变量名故意混淆了~自己改下就可以用~
全部回答
- 1楼网友:忘川信使
- 2021-11-11 02:29
#include "stdio.h"
main()
{
int n,i,c=0,m,k=0;
scanf("%d",&n);
m=n;
for(i=2;i<=n;i++)
{
c=0;
while(m%i==0)
{
c++;
m=m/i;
}
if(c==1)
{
if(k!=0)
printf("*");
printf("%d",i);
k++;
}
if (c>1)
{
if(k!=0)
printf("*");
printf("%d^%d",i,c);
k++;
}
}
printf("\n");
}
c++我忘了,给你一个c语言的,希望对你有用
main()
{
int n,i,c=0,m,k=0;
scanf("%d",&n);
m=n;
for(i=2;i<=n;i++)
{
c=0;
while(m%i==0)
{
c++;
m=m/i;
}
if(c==1)
{
if(k!=0)
printf("*");
printf("%d",i);
k++;
}
if (c>1)
{
if(k!=0)
printf("*");
printf("%d^%d",i,c);
k++;
}
}
printf("\n");
}
c++我忘了,给你一个c语言的,希望对你有用
- 2楼网友:过活
- 2021-11-11 00:56
#include
int s=0;
int fenjie(int &x)
{
int i;
for(i=2;i {
if(x%i==0)
{
x/=i;
return i;
}
}
//最后一个因子就是剩下的不能分解的数
i=x;
x=1;
return i;
}
int exsi(int x,int a[][2])
{
int i;
for(i=0;i {
if(x==a[i][0])
{
a[i][1]++;//存在,指数+1
return 0;
}
}
return 1;//不存在返回1
}
int main()
{
int m,n,i;
int a[50][2];
printf("输入:");
scanf("%d",&m);
while(m>1)
{
n = fenjie(m);
//不存在,放进结果数组a
if(exsi(n,a))
{
a[s][0]=n;
a[s++][1] = 0;
}
}
printf("%d",a[0][0]);
if(a[0][1])
printf("^%d",a[0][1]+1);
for(i=1;i {
if(i!=0)
printf("*");
printf("%d",a[i][0]);
if(a[i][1])
printf("%^%d",a[i][1]+1);
}
printf(" ");
return 0;
}
int s=0;
int fenjie(int &x)
{
int i;
for(i=2;i
if(x%i==0)
{
x/=i;
return i;
}
}
//最后一个因子就是剩下的不能分解的数
i=x;
x=1;
return i;
}
int exsi(int x,int a[][2])
{
int i;
for(i=0;i
if(x==a[i][0])
{
a[i][1]++;//存在,指数+1
return 0;
}
}
return 1;//不存在返回1
}
int main()
{
int m,n,i;
int a[50][2];
printf("输入:");
scanf("%d",&m);
while(m>1)
{
n = fenjie(m);
//不存在,放进结果数组a
if(exsi(n,a))
{
a[s][0]=n;
a[s++][1] = 0;
}
}
printf("%d",a[0][0]);
if(a[0][1])
printf("^%d",a[0][1]+1);
for(i=1;i
if(i!=0)
printf("*");
printf("%d",a[i][0]);
if(a[i][1])
printf("%^%d",a[i][1]+1);
}
printf(" ");
return 0;
}
自己敲的,难免发生小问题,如果有错误,还请告知!
2013 5 23 14:27
1L
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯