解题思路:
某数已知是两个质数的乘积,这里设为n
大质数设为b;小指数设为a
根号下n一定大于较小的质数a(可数学验证),以此解决计算时间超时的问题
参考代码:
int n;
scanf("%d",&n);
int a,b;
for(int i = 2;i<=sqrt(n);i++){ //获取较小的质数
bool isPrime = true;
for(int j = 2;j<i;j++){
if(i%j == 0){
isPrime = false;
break;
}
}
if(isPrime){
if(n%i == 0){ //在i之内可能有多个质数,以求余来判断质数是否能被n相除
a = i;
b = n/a; //n/a即较大的质数
}
}
}
printf("%d",b);
0.0分
1 人评分
C语言程序设计教程(第三版)课后习题6.11 (C语言代码)浏览:525 |
C语言训练-计算1~N之间所有奇数之和 (C语言代码)浏览:757 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:600 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:634 |
A+B for Input-Output Practice (II) (C语言代码)浏览:1043 |
wu-淘淘的名单 (C++代码)浏览:1532 |
C语言程序设计教程(第三版)课后习题6.6 (C++代码)浏览:649 |
C二级辅导-分段函数 (C语言代码)浏览:659 |
C二级辅导-阶乘数列 (C语言代码)浏览:583 |
企业奖金发放 (C语言代码)浏览:2462 |