引用 | 编辑
翁赐维
2010-01-24 14:47 |
楼主
▼ |
||
![]() #include<iostream> #include<cstdlib> using namespace std; void prime(int,int); int main() { int x,i; cout << "请输入数字 : "; cin >> x; cout << x << "="; for(i=2;i<=x;i++) { if(x%i == 0) break; } if(i == x) //在红色部分回圈后再判断出是否为质数 cout << x << "^1" << endl; else { for(int j=x-1;j>=2;j--) .. 访客只能看到部份内容,免费 加入会员 ![]()
|
引用 | 编辑
星辰雪
2011-05-28 23:05 |
3楼
▲ ▼ |
以20来举例
会跑出以下 20=2^2*5^1 我觉得 跑出这样就可以了 20=2^2*5 复制程式 #include<stdio.h> #include<stdlib.h> int main(){ int a,i,t,b[1000]={0},c; while(scanf("%d",&a)!=EOF){ c=0; if(a%2==0){ b[c]=2; for(t=0;a%2==0;t++){ a/=2; } if(t>1) b[c+1]=t; c=c+2; } for(i=3;i<=a;i+=2){ if(a%i==0){ b[c]=i; for(t=0;a%i==0;t++){ a/=i; } b[c+1]=t; c=c+2; } } for(i=0;i<=c-2;i=i+2){ if(b[i+1]>1) printf("%d^%d",b[i],b[i+1]); else printf("%d",b[i]); if(i<=c-4)printf(" * "); } printf("\n"); } return 0; } ![]() |