假如用for循环判断一个数是否为质数

该博客介绍了如何利用JavaScript编写一个函数来判断输入的数字是否为质数。通过for循环和%取余操作,检查数字从2开始到其本身之间的所有数,如果能被整除则不是质数,否则是质数。博客强调了理解和运用循环及条件判断在编程中的重要性。

首相,我们要知道什么数是质数,质数的概念就是,当一个数字无法被自己,跟1以外的任何数字,整除呢么他就是质数,假如7,他除了1 跟 7 能把他整除以外,是不是就没有了。

这里你有思路了吗?

是不是我们会想到js中的 % 取余 

代码思路

当一个数字除了自己跟一无法被他整除,那么我们要满足for循环中的 i 条件 所以我们赋值 i = 2 是不是就满足了不被1 整除, 那么继续,我们在加个判断 如果被其他书整除那么是不是就会余上0 ,我们给个if条件 当他被一些数字除以后等于0 那么它就不满足质数的条件。所以 代码如下

        function num1(num) {
            for (var i = 2; i < num; i++) {     //保证循环条件满足不去除1
                if (num % i == 0) {             //判断是否未质数,是否会被除尽
                    return true                 //如果可以中止退出函数,输出true
                }
            }
            return false                        //如果不可以中止退出函数,输出false
        }
        var num2 = parseFloat(prompt('请输入一个数字'))    //输入一个值
        alert (num1(num2))                                  //调用函数,并且把输入的值代入函数

解释如图,我们要灵活运用循环以及一些运算符。来满足我们的需求。

使用for循环判断一个是否为素,有多种实现方法,以下为你介绍不同语言的实现: ### Python实现 ```python num = int(input()) for i in range(2, num//2): if num % i == 0: print("%d不是一个" % num) break else: print("%d是一个" % num) ``` 此代码通过`for`循环遍历从2到`num//2`的所有,若`num`能被其中任何一个整除,则判定其不是素并跳出循环;若循环正常结束,说明`num`是素 [^3]。 ### C语言实现 #### 方法一 ```c #include<stdio.h> int main() { int number, i; scanf("%d", &number); for (i = 2; i <= number; i++) { if (number % i != 0) continue; if (number % i == 0 && i == number) printf("\n%d is a prime number!\n", number); if (number % i == 0 && i < number) printf("%d is not a prime number!\n", number); break; } return 0; } ``` 该代码先引入头文件,声明变量,获取用户输入的正整,然后使用`for`循环从2开始遍历到该本身。若该不能被当前整除则跳过本次循环;若能被整除且当前等于该本身,则判定为素;若能被整除且当前小于该本身,则判定不是素并跳出循环 [^1]。 #### 方法二 ```c #include<stdio.h> int main() { int i, j; printf("please enter number:\n"); scanf("%d", &j); for (i = 2; i < j; i++) { if (j % i == 0) break; } if (i < j) printf("%d is not a prime.\n", j); else printf("%d is a prime.\n", j); return 0; } ``` 此代码同样先获取用户输入的,接着用`for`循环从2开始遍历到该减1。若该能被其中任何一个整除,则跳出循环;若循环正常结束,说明该是素 [^5]。 #### 方法三 ```c #include <stdio.h> int main() { int num; int isprime = 1; printf("请输入一个: "); scanf("%d", &num); for (int div = 2; (div * div) <= num; div++) { if (num % div == 0) { printf("%d is divisible by %d and %d\n", num, div, num / div); isprime = 0; break; } } if (isprime) { printf("%d是素\n", num); } else { printf("%d不是素\n", num); } return 0; } ``` 该方法使用标记`isprime`,初始化为1。通过`for`循环从2开始,当`div * div`小于等于`num`时进行遍历。若`num`能被`div`整除,说明不是素,将`isprime`置为0并跳出循环循环结束后,根据`isprime`的值判断是否为素,这种方法能节省时间 [^2]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值