前提・実現したいこと
C言語で、入力値以下(1000以下の入力値n)の素数の最大値を求めて表示したい。
該当のソースコード
#include<stdio.h> int prime(int); int main(void){ int n,i,j; scanf("%d",&n); printf("入力値:%d\n",n); for(i=1000;i>1;i--){ j=prime(i); if(j==2){ break; } } printf("%d",i); return 0; } int prime(const int n){ int i,j; j=0; for(i=2;i<=n;i++){ if(n%i==0){ j++; } } return j; }
試したこと
素数を計算する関数のなかで入力してその入力値をもとに素数の計算をおこなうように考えてみました。
#include<stdio.h> int primeNumber(int); int main(void){ int n,i,j; printf("入力値:%d\n",n); for(i=1000;i>1;i--){ j=primeNumber(i); if(j==2){ break; } } printf("%d",i); return 0; } int primeNumber(const int n){ int i,j; scanf("%d",&n); if(n>=2&&n<=1000){ return n; } j=0; for(i=2;i<=n;i++){ if(n%i==0){ j++; } } return j; }
この場合だと永続的に入力を要求されるようになります。
補足情報(FW/ツールのバージョンなど)
visual studio codeでプログラムしています。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/15 05:45