1.cpp

来自「处理45以下的超级合数的优化算法」· C++ 代码 · 共 54 行

CPP
54
字号
#include<iostream>
using namespace std;
int fac(int n){
	int sum=0,i_1;
	for(int i=1;i<=n/2;i++){
		if(n%i==0){
			sum++;

			if(i*i==n){
				sum=sum*2-2;
				return sum;
			}
			if(i*i_1==n){
				sum=sum*2-3;
				return sum;
			}
			i_1=i;
		}
	}
	return sum;
}
int main(int argc, char* argv[])
{
	int t=0,s=1,i,ii,n[45];
	bool b=false;
	for(i=2;s<18;i++){
		if(s<10||(s>=10&&i%20==0)){
			int num=fac(i);
			if(num>t){
				t=num;n[s]=i;
				cout<<s++<<" "<<i<<":"<<t<<endl;
			}
		}
	}
	i--;
	for(;s<45;i+=180){
		b=false;
		if(i%20==0){
			int num=fac(i);
			if(num>t){
				t=num;n[s]=i;
				cout<<s++<<" "<<i<<":"<<t<<":"<<(i-ii)/180<<endl;
				ii=i;

			}
		}
	}
	cout<<"输入一个小于45的正整数:";
	int a;
	cin>>a;
	cout<<n[a]<<endl;
	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?