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 + -
显示快捷键?