判断键盘输入的整数是否素数,程序提问"继续输
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/06 13:14:12
10以内的数判断是否为素数,可以不用任何算法建个数组将0~9以内的素数放在里面,{1,3,5,7}将输入的数字与数组内的数比较,如果有相同就是素数,没有相同的,就非素数.
步长改为2,就是n+=2;偶数一定不是素数.还有,被检验的数不是素数的话肯定能被之前的素数整除.所以用之前的检测出的素数除被检测书就行了,然后判断一个素数之需除到它的一半就行了.我只是为了运行速度提出
#includevoidmain(){inta,b,c;printf("请输入一个大于3的数\n");scanf("%d",&a);for(b=2;a>b==1;b++){c=a%b;if(c==0)
//也不说用什么语言,我用C语言来实现!#include#includeintprime(intm){inti,n;if(m==1)return0;n=(int)sqrt((double)m);for
C语言版:#include#includevoidmain(){inti,m,k;printf("pleaseinputanumber:\n");scanf("%d",&m);k=(int)sqrt(
你的fun函数写错了,应改成:fun(intn){inti,y=0;for(i=2;i
有一种办法是对大数的随机测试准确率很高(不保证100%)你可以搜索随机化算法(MonteCarlo)算法还有一种是生成六位数以内的素数并保存然后将你要测试的数作为longlong或者__int64来除
a*a=b假设你先循环2到a,发现b都不能整除,这时你在循环a+1到a*a就没有意义了,因为b=a*a,所以b/(a+x)是肯定小于a的,而2到a已经循环过了不是吗?不过一般代码里面都是循环2到b/2
如果m>1且m只能被1和m自己整除,m就是素数&&VFPm=17m,aaa(m)m=18m,aaa(m)procaaa(m)&&判断素数的函数x=1fori=2tom-1ifm%i=0x=0exite
intisp(intn){inti,k;k=sqrt(n)+1;for(i=3;i
观察:4=2×26=2×312=2×6=3×4若n是合数,则n一定能分解成两个整数之积,不妨设n=a×b且a≤b,则易知a≤√n,也就是说:若n是合数,则在2~√n之间至少有一个因数,否则n就是素数.
用2个For嵌套,加上一个If判断就能简单解决.一个外For来控制找出小于正整数的不同因子,里面的For加上If来判断找出来的每个因子是否是质数再问:你能把具体程序给出来不啊???……谢谢啰呵!
给你两种答案选择:(都是自己编的,而且经过VC测试的!)方法一:#includevoidmain(){inti,a,b=0;scanf("%d",&a);if(a==1)a++;for(i=0;i
oolcalc(unsignedintn){if(n
#include#includeintss(intn)/*检查n是否为素数,如果是则返回1,否则返回0*/{inti;for(i=2;i再问:晕,少了一个函数啊,我就是不太明白这两个函数如何连接起来,
#include"stdio.h"intprime(intn){for(inti=2;i
importjava.util.Random;publicclassTest{publicstaticvoidmain(String[]args){Randomrand=newRandom();int
CLOSEALLCLEARALLCLEARnEndNo=10FORnLoop_01=1TOnEndNocLoop_01=PADL(ALLTRIM(STR(nLoop_01)),2,"")DOWHILE
prime函数有错!int prime(int N){ int i; if(N
//#include"stdafx.h"//vc++6.0加上这一行.#include"stdio.h"boolprime(intn){inti;if(n>2&&!(n&1)||n