用c语言写Определить, какая наименьшая степень числа N делится на число K. Если никакая степень не делится на K, вывести -1.
时间: 2024-05-07 22:22:41 浏览: 9
下面是使用C语言编写的程序,可以确定最小的N的幂,该幂可以被K整除。如果没有这样的幂,则输出-1。
```c
#include <stdio.h>
int main() {
int n, k, power = 1;
printf("Enter the value of N and K:\n");
scanf("%d%d", &n, &k);
while (power % k != 0) {
if (power > n && power % k != 0) {
printf("-1\n");
return 0;
}
power *= n;
}
printf("%d\n", power);
return 0;
}
```
在这个程序中,我们首先读取用户输入的值N和K。然后,我们使用while循环来计算N的幂,直到找到一个幂,该幂可以被K整除。如果没有这样的幂,则输出-1。
相关问题
Определить, какая наименьшая степень числа N делится на число K. Если никакая степень не делится на K, вывести -1.
这是一个IT类问题。为了找到最小的n,使得K能够整除N的n次方,我们可以不断地将N乘以自身,直到N的n次方能够被K整除或者N的n次方已经大于K。如果N的n次方大于K,那么就说明无论如何也不可能找到一个n使得K能够整除N的n次方。此时我们应该输出-1。如果N的n次方能够被K整除,那么我们就找到了最小的n。具体实现可以参考以下代码:
```python
def smallest_power(N, K):
n = 0
while N**n < K:
n += 1
if N**n % K == 0:
return n
else:
return -1
```
示例输入和输出:
```
smallest_power(2, 16) -> 4
smallest_power(3, 20) -> -1
```
excel用vba编写两段代码完成以下两个任务:(1)Создайте форму расчета графика платежей по кредиту. Заведите поля, куда будут вводится дата начала кредита, срок в месяцах, процентная ставка, сумма кредита, планируемую дату платежа (в примере ниже - это 10-е число каждого месяца, т. е. пользователь выбирает число, в которое ему удобно осуществлять платеж). Выберите нужные типы полей. При нажатии на кнопке "ok" вся введеная информация должна появится на листе, аккуратно оформленная и подписанная.
Ниже представлены две части кода VBA, которые могут решить задачу:
Первый код используется для создания формы расчета графика платежей по кредиту:
```
Sub СоздатьФормуРасчетаГрафикаПлатежейПоКредиту()
Dim ДатаНачалаКредита As Date
Dim СрокКредитаВМесяцах As Integer
Dim ПроцентнаяСтавка As Double
Dim СуммаКредита As Double
Dim ДатаПланируемогоПлатежа As Date
'Запросить информацию у пользователя
ДатаНачалаКредита = InputBox("Введите дату начала кредита (в формате ГГГГ/ММ/ДД)")
СрокКредитаВМесяцах = InputBox("Введите срок кредита в месяцах")
ПроцентнаяСтавка = InputBox("Введите процентную ставку по кредиту")
СуммаКредита = InputBox("Введите сумму кредита")
ДатаПланируемогоПлатежа = InputBox("Введите планируемую дату платежа (в формате ГГГГ/ММ/ДД)")
'Добавить заголовок таблицы
Range("A1:F1").Merge
Range("A1").Value = "График платежей по кредиту"
Range("A1").Font.Size = 20
Range("A1").Font.Bold = True
'Добавить заголовки столбцов таблицы
Range("A3").Value = "Дата платежа"
Range("B3").Value = "Месяц платежа"
Range("C3").Value = "Год платежа"
Range("D3").Value = "Сумма платежа"
Range("E3").Value = "Основной долг"
Range("F3").Value = "Проценты"
'Рассчитать график платежей и заполнить таблицу
Dim i As Integer
For i = 1 To СрокКредитаВМесяцах
Dim ДатаПлатежа As Date
Dim МесяцПлатежа As Integer
Dim ГодПлатежа As Integer
ДатаПлатежа = DateSerial(Year(ДатаПланируемогоПлатежа), Month(ДатаПланируемогоПлатежа), 10)
If i > 1 Then
ДатаПлатежа = DateAdd("m", 1, Range("A" & i + 2).Value)
End If
МесяцПлатежа = Month(ДатаПлатежа)
ГодПлатежа = Year(ДатаПлатежа)
Dim СуммаПлатежа As Double
Dim ОсновнойДолг As Double
Dim Проценты As Double
СуммаПлатежа = WorksheetFunction.Pmt(ПроцентнаяСтавка / 12, СрокКредитаВМесяцах, -СуммаКредита)
ОсновнойДолг = WorksheetFunction.PPmt(ПроцентнаяСтавка / 12, i, СрокКредитаВМесяцах, -СуммаКредита)
Проценты = WorksheetFunction.IPmt(ПроцентнаяСтавка / 12, i, СрокКредитаВМесяцах, -СуммаКредита)
Range("A" & i + 3).Value = ДатаПлатежа
Range("B" & i + 3).Value = МесяцПлатежа
Range("C" & i + 3).Value = ГодПлатежа
Range("D" & i + 3).Value = СуммаПлатежа
Range("E" & i + 3).Value = ОсновнойДолг
Range("F" & i + 3).Value = Проценты
Next i
'Оформить таблицу
Range("A3:F" & СрокКредитаВМесяцах + 3).HorizontalAlignment = xlCenter
Range("A3:F" & СрокКредитаВМесяцах + 3).Borders.LineStyle = xlContinuous
Range("A3:F" & СрокКредитаВМесяцах + 3).Font.Size = 12
Range("A3:F" & СрокКредитаВМесяцах + 3).Font.Name = "Calibri"
Range("A" & СрокКредитаВМесяцах + 5).Value = "Подпись:"
Range("A" & СрокКредитаВМесяцах + 7).Value = "Дата: " & Format(Date, "ГГГГ/ММ/ДД")
End Sub
```
Второй код используется для привязки первого кода к кнопке "ОК" на форме:
```
Private Sub CommandButton1_Click()
Call СоздатьФормуРасчетаГрафикаПлатежейПоКредиту
End Sub
```
Чтобы использовать код, создайте новый Excel-файл, нажмите на кнопку "Разработчик" в меню, выберите "Вставка формы" и добавьте кнопку "ОК". Щелкните правой кнопкой мыши на кнопке "ОК" и выберите "Просмотр кода", чтобы открыть редактор VBA. Скопируйте второй код в редактор, чтобы связать его с кнопкой. Затем скопируйте первый код в редактор, чтобы создать форму расчета графика платежей по кредиту. Сохраните файл и нажмите на кнопку "ОК" для запуска формы и отображения графика платежей.
相关推荐
![crx](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)