https://www.nowcoder.com/pat/2/problem/262 1013 分解因数
https://www.nowcoder.com/pat/2/problem/264 1014 因子个数
思路 :
从i=2开始求余,直至余数不为0,其后从3开始求余......
直至i小于等于被除数n的数值(或n的开平方数值)
&&:利用了素数的知识点(求素数的算法演变)
#include<cstdio>
#include<cmath>
using namespace std;
int main(){
int a;
int ai[100];
while(scanf("%d", &a) != EOF)
{
int b = a;
int j = 0;
for(int i = 2; i <= a; i++)
{
while(b % i == 0)
{
ai[j++] = i;
b = b/i;
}
if(b <= 1)
break;
}
printf("%d = %d", a, ai[0]);
for(int i = 1; i < j; i++)
{
printf(" * %d", ai[i]);
}
printf("\n");
}
return 0;
}
1014
#include<iostream>
#include<cmath>
using namespace std;
int main(){
int a;
while(cin >> a)
{
int b = a;
int j = 0;
for(int i = 2; i <= sqrt(a); i++)
{
int flag = 0;
while(b % i == 0)
{
b = b/i;
flag = 1;
}
if(flag)
j++;
}
if(b != 1)
j++;
cout << j <<endl;
}
return 0;
}

京公网安备 11010502036488号