循环嵌套 质数

发布时间 2023-11-23 13:33:22作者: 鸢凛

7-1 循环嵌套

计算s=1+(1+2)+(1+2+3)+……+(1+2+……+n)。

输入格式:

输入在一行中给出n的值。

输出格式:

在输出行显示计算出的结果。

输入样例:

在这里给出一组输入。例如:

20

输出样例:

在这里给出相应的输出。例如:

sum=1540

解题思路:

  1.观察需要计算的式子可知,需要计算n次(1+2+...+n),因此可以使用两层循环嵌套实现

  2.第一层循环为1-n,第二层循环为1-i,最后将结果全部相加可得到最终结果

#include<stdio.h>
int main() {
    int number;
    int sum = 0;
    scanf("%d",&number);
    for(int i=1;i<=number;i++){
        for(int j=1;j<=i;j++){
            sum += j;
        }
    }
    printf("sum=%d",sum);
    return 0;
}

1700: [NewOJ Contest 1] 质数

题目描述:

质数是指在大于1的自然数中,除了1和该数自身外,无法被其他自然数整除的数。

请找出第一个大于20222022的质数。

输入格式:

无输入

输出格式:

由于本题为固定答案,无输入,只需输出1个数字表示答案,不要输出其他任何字符。

例如:假设答案为100,对于C++而言,提交如下代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    cout<<100<<endl;
    return 0;
}

对于Java语言:

import java.util.*;
public class Main{
    public static void main(String args[]){
        System.out.println(100);
    }
}

对于Python语言:

print(100)

解题思路:

  1.由题可知:质数是指在大于1的自然数中,除了1和该数自身外,无法被其他自然数整除的数,而题目需要我们寻找第一个大于20222022的质数

  2.因此,可以使用循环,判断20222022之后的数字,取余2-i能否等于0,如果等于零,即该数不为质数,则跳出循环

  3.如果j与i相同,则说明该数取余从2-i的所有数均不为0,即该数为质数,则输出该数

#include<stdio.h>
int main() {
    int n,j;
    for(int i = 20222022;;i++){
        for(j=2;j<i;j++){
            if(i%j==0){
                break;
            }
        }
        if(j==i){
            printf("%d",i);
            break;
        }
    }
    return 0;
}