输出1-100之间所有质数+改进

该博客介绍了如何使用C语言改进算法,高效地找出1到100之间的所有质数。通过优化判断素数的方法,提高代码性能。
摘要由CSDN通过智能技术生成
/*
	输出1-100之间所有质数  不包括1 
*/
#include <stdio.h>
int main(){
	int i,j;
	for(i=2;i<=100;i++){
		int t=1;
		for(j=2;j<i;j++){
			if(i%j==0)
				t=0;
				break;
		}
		if(t==1){
			printf("%d ",i);
		}
	}
	return 0;
}

改进:

/*
	输出1-100之间所有质数  不包括1 
*/
#include <stdio.h>
#include <math.h>
int isPrime(int n)//判断素数函数。
{
    int i;
    for(i = 2; i <= (int)sqrt(n); i++)//从2到算数平方根遍历。
        if(n%i == 0) return 0;//存在约数,非素数,返回0.
    return 1;//是素数,返回1.
}
int main()
{
    int i;
    for(i = 2; i <= 100; i ++)//遍历。
        if(isPrime(i))//是素数。
            printf("%d ", i);//输出素数。
    return 0;
}

判断是否是素数:

#include <stdio.h>
int main(){
	int i,n;
	scanf("%d
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用以下代码实现判断整数是否为素数的方法: ```java public static boolean isPrime(int num) { if (num <= 1) { return false; } for (int i = 2; i <= Math.sqrt(num); i++) { if (num % i == 0) { return false; } } return true; } ``` 接下来,可以使用该方法求100到200之间所有素数的累加和: ```java int sum = 0; for (int i = 100; i <= 200; i++) { if (isPrime(i)) { sum += i; } } System.out.println("100到200之间所有素数的累加和为:" + sum); ``` 输出结果为:100到200之间所有素数的累加和为:1060 ### 回答2: 首先,我们可以定义一个方法来判断一个给定的整数是否为素数。一个素数是只能被1和自身整除的正整数。 以下是一个Java方法来判断给定整数是否为素数: ```java public static boolean isPrime(int number) { if (number <= 1) { return false; } else { for (int i = 2; i <= Math.sqrt(number); i++) { if (number % i == 0) { return false; } } return true; } } ``` 然后,我们可以在主方法中使用该方法来求100到200之间所有素数的累加和: ```java public static void main(String[] args) { int sumOfPrimes = 0; for (int i = 100; i <= 200; i++) { if (isPrime(i)) { sumOfPrimes += i; } } System.out.println("100到200之间所有素数的累加和为:" + sumOfPrimes); } ``` 运行以上代码,将会输出100到200之间所有素数的累加和为:1060。 ### 回答3: 要判断一个整数是否为素数,可以写一个方法来实现。方法的输入参数为一个整数num,返回值为布尔类型,表示该数是否为素数。具体的实现思路如下: 1. 首先判断num是否小于2,如果是的话,直接返回false,因为小于2的数都不是素数。 2. 在循环中,从2到num - 1依次遍历所有可能的因数。判断num是否能被当前的因数整除,如果能整除,说明num不是素数,返回false。 3. 如果在循环结束后都没有找到除了1和num本身以外的因数,那么num就是素数,返回true。 接下来,可以编写一个循环来遍历100到200之间的所有整数,对每个整数调用判断素数的方法。如果是素数,则累加到一个变量sum中。最后,输出sum的值,即为所求的累加和。具体的代码如下: ```java public class PrimeNumber { public static boolean isPrime(int num) { if (num < 2) { return false; } for (int i = 2; i < num; i++) { if (num % i == 0) { return false; } } return true; } public static void main(String[] args) { int sum = 0; for (int i = 100; i <= 200; i++) { if (isPrime(i)) { sum += i; } } System.out.println("100到200之间所有素数的累加和为:" + sum); } } ``` 运行这段代码,输出结果为:100到200之间所有素数的累加和为:1060。 注意:上述的代码只是一种实现方式,还可以根据具体需求进行优化和改进
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值