首先要知道素数的含义,就是除了1和他本身之外,没有其他的数可以被他整除。知道这一点可以设计函数了。首先对这要判断的数除以2,只需要商的整数部分就可以了。
假如商是n,设计一个自变量i,i从2开始,每次都拿要判断的数除以i,如果得到的数字小数部分是0,那就是被整除了,这个数就不是素数了,如果不是0,i每次自增1,继续除下去,如果一直除到n,小数部分都不是0,这个数就是素数。
#include<stdio.h>int prime(int n){for(int i=2; i*i<=n;i++) if(n%i==0)return 0; return n>1;}int main(){int n; scanf("%d",&n); if(!prime(n))printf("不"); printf("是素数\n"); return 0; }
Option Explicit
Private Sub Form_click()'窗口单击事件
Dim i As Integer
For i = 100 To 300 '生成100到300的所有数值
If isPrime(i) = 0 Then Print i '调用素数判断函数判断当前数是否为素数
Next i
End Sub
Function isPrime(X As Integer) As Integer
Dim i As Integer
If X <= 1 Then isPrime = -1 '素数范围>=2
通过素数的定义,假设我们取数字m,用m去除2~m-1的所有整数,若每次相除余数都为0,那么m肯定就是素数了。 代码实现:
#define_CRT_SECURE_NO_WARNINGS
#include<stdio.h>
还可以运用一个数学思想,假设取数字m,那就是我们可以用m去除2~sqrt(m)之间的所有整数,若都不能被m整除,那么m就是素数。这是一个数学原理。 注:sqrt()是一个数学函数,表示开平方,要引头文件<math.h> 代码实现: #define_CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<math.h> intmain() { inti =0; for(intm =2; m <=100; m++)//遍历1~100所有数 { for(i =2; i <= sqrt(m); i++)//2~根号m的所有数 { if(m % i ==0) { break;//如果2~根号m的所有数能被m整除,则不是素数 } } if(i > sqrt(m))//判断若i大于根号m,则m是素数 { printf("%d ", m);//打印素数 } } return0; } 运行结果:
查看更多
到此,以上就是小编对于写一个判素数的函数,在主函数输入一个整数c语言的问题就介绍到这了,希望介绍的4点解答对大家有用,有任何问题和不懂的,欢迎各位老师在评论区讨论,给我留言。
sqlserver如何导入excel数据如何能把excel大量数据快...
Ubuntu系统下可以做什么1+xweb中级考核内容包括什么Ub...
五张表关联查询语句SQL怎么写从多个表中查询数据的sql语句SQL一...
数学问题复合函数有没有同奇异偶这个性质奇异函数平衡原理奇异函数平衡法...
周期函数excel剩余周数函数公式excel月份星期函数公式周期函数...
用第三个表达式替换第一个字符串表达式中出现的所有第二个给定字符串表达式。
语法
REPLACE ( ''string_replace1'' , ''string_replace2'' , ''string_replace3'' )
参数
''string_replace1''
待搜索的字符串表达式。string_replace1 可以是字符数据或二进制数据。
''string_replace2''
待查找的字符串表达式。string_replace2 可以是字符数据或二进制数据。
在SQL Server中,REPLACE函数用于替换字符串中出现的指定子字符串。它接受三个参数:原字符串,要被替换的子字符串和替换后的子字符串。
该函数会查找原字符串中的所有匹配项,并将其替换为指定的字符串。如果原字符串中不存在要替换的子字符串,则不会发生任何更改。使用REPLACE函数可以轻松地进行字符串替换操作,例如将某些特定字符替换为其他字符或将一部分文本替换为其他文本。这在数据清洗和字符串处理中非常有用。
12。replace('string" class="zf_thumb" width="48" height="48" title="SqlServer中REPLACE函数的使用,sql替换字符串函数" />