第12回ブルーブリッジカップシミュレーショントーナメント(フェーズ3):質問1

第12回ブルーブリッジカップシミュレーショントーナメント(フェーズ3):質問1

問題の説明:

1から2020まで、2020に対して互いに素な数、つまり、2020の最大公約数が1である数の数。

回答の提出:

これは空欄に記入する質問です。結果を計算して送信するだけです。この質問の結果は整数です。回答を送信するときは、この整数のみを入力してください。余分なコンテンツを入力すると、スコアを付けることができなくなります。

コード:

方法1:

public class Main {
    
    
	public static void main(String[] args) {
    
    
	int count=2020;//统计与2020互质的数
		int count2 = 0;//统计与2020互质的数
		int count1[] = new int[11];
		int index = -1;
		//找出2020的全部因数,除了1
		for(int i=2;i<=2020;i++) {
    
    
			if(2020%i==0) {
    
    
				index++;
				count1[index] = i;
				System.out.println(i);
			}
		}
		for(int i=1;i<=2020;i++) {
    
    
			for(int j=0;j<count1.length;j++) {
    
    
				//如果一个数可以整除2020的因数,则他必然与2020不互质
				//1——2020共2020个数不满足count--
				if(i%count1[j]==0) {
    
    
					count--;
					break;
				}
			}
		}
		System.out.println(count);
	}
}

方法2:

public class Main {
    
    
	public static void main(String[] args) {
    
    
		int count=2020;//统计与2020互质的数
		int count2 = 0;//统计与2020互质的数
		int count1[] = new int[11];
		int index = -1;
		//找出2020的全部因数,除了1
		for(int i=2;i<=2020;i++) {
    
    
			if(2020%i==0) {
    
    
				index++;
				count1[index] = i;
				System.out.println(i);
			}
		}
		for(int i=1;i<=2020;i++) {
    
    
			if(check(i,count1)) {
    
    
				count2++;
			}
		}
		System.out.println(count2);
	}
	public static boolean check(int i, int[] num) {
    
    
		for(int j=0;j<num.length;j++) {
    
    
			//一个数i能整除2020的任意一个因数,返回false
			if(i%num[j]==0) {
    
    
				return false;
			}
		}
		//i不能整除2020的全部因数,返回true
		return true;
	}
}

西内~~

これで本日の勉強は終わりです。私の能力と知識が限られているため、文章に何か問題がある場合は、私を批判して訂正してください。何もわからない場合はメッセージを残してください。これからも学び、改善していきたいと思ったら、私に注意を払い、毎日少しずつ進歩してください。これがリードの始まりです。さあ。この記事が役に立ったと思われる場合は、転送、コメントなどを歓迎します

おすすめ

転載: blog.csdn.net/qq_45004455/article/details/115036023