【违规紫衫】关于freopen
  • 板块学术版
  • 楼主caramel_qwq
  • 当前回复14
  • 已保存回复14
  • 发布时间2021/5/15 14:12
  • 上次更新2023/11/4 23:14:46
查看原帖
【违规紫衫】关于freopen
444195
caramel_qwq楼主2021/5/15 14:12

我现在得做一个分解质因数的程序【很简单】,但是题目要求用freopen,我写了之后反而就没法输入输出了【就像死循环一样】,但是我也创建记事本了啊!求大佬看看代码哪错了。

#include<iostream>
#include<cmath>
#define MAXN 1000008
using namespace std;
int n,cnt=1,k;
int a[MAXN],an;
bool IsPrime(int x){
	for(int i=2;i<=sqrt(x);i++){
		if(x%i==0){
			return false; 
		}
	}
	return true;
}
int main(){
	freopen("prim.in","r",stdin);
	freopen("prim.out","w",stdout);
	cin>>n;
	k=n;
	for(int i=2; ;i++){
		if(cnt==n) break;
		if(IsPrime(i)==true&&k%i==0){
			a[an]=i;
			an++;
			k/=i;
			cnt*=i;
			while(true){
				if(k%i!=0)	break;
				a[an]=i;
				an++;
				k/=i;
				cnt*=i;
			}
		}	
	}
	for(int i=0;i<=an-2;i++){
		cout<<a[i]<<'*';
	}
	cout<<a[an-1]<<endl;
	return 0;
}

谢谢!

2021/5/15 14:12
加载中...