指定された範囲の数値の除数を出力したかったのです。それは問題なく動作します。****
しかし、素数の約数の最後に 配置するように変更しようとすると、奇妙なように動作します。
#include <stdio.h>
int main()
{
int a,start,rounds,b,c,k=0;
printf("Please enter a number to start :");
scanf("%d",&start);
printf("Please enter how many numbers you want to print from that number :");
fflush(stdin);
scanf("%d",&rounds);
for(a=start;a<=start+rounds;a++)
{
printf("\n\nThe divisors of number :%d are \n",a);
for(b=1;b<=a;b++)
{
c=a%b;
if(!c)
{
k++;
printf("%d\n",b);
}
}
//printf("%d",k);
if((k==2)||(k==1))
printf("***\n");
}
getchar();
return 0;
}
printf
PS:- 素数を見つけるために使用したトリックは、ループが終了する前に実行されたステートメントの数を数えることです。それは何か問題がありますか?ステートメント//
から削除すると、以下のように出力されます。printf
start=========>k
1 =========>1
2 =========>3
3 =========>5
4 =========>8
5 =========>10
何故ですか?