-2

指定された範囲の数値の除数を出力したかったのです。それは問題なく動作します。****しかし、素数の約数の最後に 配置するように変更しようとすると、奇妙なように動作します。

#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;
}

printfPS:- 素数を見つけるために使用したトリックは、ループが終了する前に実行されたステートメントの数を数えることです。それは何か問題がありますか?ステートメント//から削除すると、以下のように出力されます。printf

start=========>k

  1   =========>1

  2   =========>3

  3   =========>5

  4   =========>8

  5   =========>10

何故ですか?

4

2 に答える 2

0

if((k==2)&&(k==1))

今日のコンピュータでは、k が同時に 21 になることはありません。たぶん、k が 2か k が 1 かどうかを言うつもりでしたか?

于 2013-04-05T07:29:51.913 に答える