循环嵌套 质数
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; }