以下代码,找到了约数最多的第一个数!
#include
#include
int main()
{
int i,j;
int gs,max=0,num=1;
for(j=1;j<=100;j++){
gs=0;
printf("%d--->",j);
for(i=1;i<=j;i++){
if(j%i==0){
printf("%d ",i);
gs++;
}
}
printf("\n");
if ( gs > max ) {
max=gs;
num=j;
}
}
printf("%d has %d divisors\n", num, max );
system("pause");
return 0;
}
#include
using namespace std;
int Max;
int now[101],rec[101];
int main(){
int i,j,k,cot;
for(i=1;i<=100;i++){
cot=0;
for(int j=1;j<=i;j++)
if(i%j==0)
now[++cot]=j;
if(cot>Max){
Max=cot;
for(k=1;k<=Max;k++)
rec[k]=now[k];
}
}
printf("在1至100间 %d 的约数最多,它的约数个数为 %d\n",rec[Max],Max);
printf("它的约数是:");
for(i=1;i<=Max;i++)
printf("%d ",rec[i]);
return 0;
}
每次更新值的时候顺便把约数也给换了就行
定义两个int 一个是当前约数个数,一个是约数最多的数
int index,number,temp;
temp=0;
for(j=1;j<=100;j++){
number=0;
for(i=1;i<=j;i++){
if(j%i==0){
printf("%d ",i);
number1=number+1;
}
}
if(number>temp)
{
index=j;
temp=number;
}
}
最后所得结果temp就为最多约数个数,index就为约数最多的整数。把以上代码嵌进去就成.