問題: n と n + 1 の正の約数が同じである、1 < n < 10^7 の整数の数を見つけます。たとえば、14 には正の約数 1、2、7、14 があり、15 には 1、3、5、15 があります。
C と私にとっては大きすぎるため、10^7 に到達できません。Cでこの問題を解決するにはどうすればよいですか?
#include<stdio.h>
#include<conio.h>
int divisorcount(int);
int main()
{
int number,divisornumber1,divisornumber2,j=0;
for(number=1;number<=100;number++){
divisornumber1=divisorcount(number);
divisornumber2=divisorcount(number-1);
if(divisornumber1==divisornumber2){
printf("%d and %d\n",number-1,number);
j++;
}
}
printf("\nThere is %d integers.",j);
getch();
}
int divisorcount(int num)
{
int i,divi=0;
for(i=1;i<=(num)/2;i++)
if(num%i==0)
divi++;
return divi;
}