为什么???
  • 板块灌水区
  • 楼主懵逼小蒟蒻
  • 当前回复22
  • 已保存回复22
  • 发布时间2021/7/6 14:59
  • 上次更新2023/11/4 18:33:11
查看原帖
为什么???
309320
懵逼小蒟蒻楼主2021/7/6 14:59

为什么这个代码运行后会停止工作?我也没写递归啊,数组好像也不会越界啊???

#include<iostream>
using namespace std;
int y(int a){
	int s=1,k[10001]={},t=1;
	while(a%2==0){
		a/=2;k[t]++;
	}
	t++;
	for(int i = 3;i<=a;i+=2){
		while(a&&a%i==0){
			a/=i;
			k[t]++;
		}
		t++;
	}
	for(int i = 1;i<=t;i++){
		s*=k[i]+1;
	}
	return s;
}
int main(){
	int a[10001][2]={},t=1,kk;
	for(long long i = 2;i<=1e7;i+=2){
		kk=y(i);
		if(kk>a[t-1][1]){
			a[t][0] = i;
			a[t][1] = kk;
			t++;
		}
	}
	for(int i = 1;a[i][0]!=0;i++){
		cout << a[i][0] << ',';
	}
	return 0;
} 
2021/7/6 14:59
加载中...